Fibmesh Publish / CLI & automation

Describe the intent.
Verify the result.

A proposed command-line workflow for selecting applications, administering remote connectors and making deployments repeatable.

Read the command specimens CLI design reference · Confirm platform and deployment support during assisted setup.

Publish is available with assisted setup. Confirm supported platforms and deployment requirements. Separately marked proposals remain outside the released scope.

Reference / proposal status

Read as design.
Not an installation guide.

The commands on this page are proposed syntax. They are not supported installation instructions or a released CLI contract. No download or executable quickstart is offered here. Publish is available with assisted setup; these CLI, status and configuration specimens remain proposals.

The intended CLI authenticates to your workspace and requests changes from the backend. The background connector executes the WireGuard connection and forwarding. Endpoint private keys stay on the endpoint.

01 / Create specimens

Three applications.
One selected connector.

Choose an enrolled connector, then name each app’s address and port from that connector’s point of view. Each publication gets its own managed hostname.

Specimen A / three publicationsProposed commands · not executable documentation
# Proposed syntax — not executable release documentation
fibmesh publish create portal --connector studio-server \
  --target http://127.0.0.1:3000 --access public
fibmesh publish create api --connector studio-server \
  --target http://127.0.0.1:8080 --access public
fibmesh publish create preview --connector studio-server \
  --target http://127.0.0.1:5173 --access public
Publication nameportal
A name to inspect or pause later. It identifies one publication, not every app on the connector.
Selected executor--connector
The enrolled machine that reaches the app. It can be different from the computer running the CLI.
Explicit destination--target
The application URL as reached by the selected connector, including its protocol and port.
Exposure decision--access public
Explicitly allow internet requests. The application still supplies any required login or API authentication.

02 / Remote administration

Run the CLI here.
Reach the app there.

The workspace and connector determine where the target is evaluated. Running a command on a laptop does not make the target refer to that laptop.

Specimen B / LAN targetProposed command · Edge hardware remains development/pilot
# Proposed syntax
fibmesh publish create inventory --connector office-edge \
  --target http://192.168.1.20:8080 --access public
Resolve from the connector

Localhost stays local to it.

The example target is reached from office-edge. Likewise, localhost always means the selected connector’s host environment, even when you administer it remotely.

Review before exposure

Show the complete selection.

Preview the chosen workspace, connector, target and public access before activation. An unrecognised connector, unsupported protocol or unauthorised target must stop the operation. It must not fall back to a convenient default.

03 / Status & lifecycle

Saved intent is one thing.
Readiness is observed.

Inspect a publication before changing it. Status should separate the requested configuration from the state the connector and public gateway can actually observe.

Specimen C / illustrative status responseProposed output · not a live system
Publication   portal
Connector     studio-server · online
Target        http://127.0.0.1:3000 · responding
Public URL    https://studio-portal.publish.fibmesh.example
HTTPS         certificate pending
Status        waiting — public link not ready
Specimen D / publication operationsProposed commands
# Proposed syntax
fibmesh publish list
fibmesh publish status portal
fibmesh publish pause preview
fibmesh publish resume preview
fibmesh publish delete preview
Pause & resume
Pause preserves the reserved hostname while stopping new requests. Resume is a change whose observed readiness still needs verification.
Delete
The workflow must define hostname retention and existing-session handling before deletion. Do not infer either behaviour from the command’s name.
Persistent publication

Terminal closed. Connector running.

Configuration belongs to the workspace and background connector. Closing the terminal does not stop it. The host must stay awake, and the connector and application must remain running.

Temporary sharing / proposed extension

An expiry the gateway enforces.

A temporary publication needs an explicit expiry and audience. It should expire at the gateway even if the terminal or host disappears, without relying on a clean shutdown.

04 / Automation design

Keep the desired state.
Keep credentials elsewhere.

A declarative file could describe intended publications. This YAML is a configuration sketch with a non-final schema, not an accepted file format.

Specimen E / configuration sketchIllustrative YAML · schema is not final
# Illustrative configuration — schema is not final
connector: studio-server
publications:
  - name: portal
    target: http://127.0.0.1:3000
    access: public
  - name: api
    target: http://127.0.0.1:8080
    access: public
Proposed deployment sequence
  1. Preview the change.

    Review the workspace, connector, targets and exposure before applying.

  2. Apply the intended state.

    Repeating the same configuration should not create duplicate publications.

  3. Wait for verification.

    Return a clear success or failure result based on observed readiness.

Keep credentials in the authenticated client or a scoped automation secret store. Never embed them in this file.

Explicit removal

No silent deletion.

Removing an entry from a file must not silently delete a live publication. Destructive intent needs to be explicit and reviewable.

One policy authority

Same ownership. Same audit.

Dashboard and CLI changes need the same ownership checks and audit events. Neither interface can bypass backend policy; the local executor applies authorised state.

Next / Put the route to work

Start with a real app.
Check the whole journey.

Use assisted setup to confirm the connector, target and public access, then test the application from outside the site. CLI and automation syntax remain proposed.