diff --git a/src/data/docsNav.ts b/src/data/docsNav.ts index 5b14c0ff..3762eac7 100644 --- a/src/data/docsNav.ts +++ b/src/data/docsNav.ts @@ -53,6 +53,21 @@ export const docsNav: NavItem[] = [ icon: '' }, { label: 'Consent & Privacy', href: '/docs/consent', slug: 'consent', icon: '' }, + // Hosted control plane + { section: 'Hosted Control Plane', label: 'Managed Overview', href: '/docs/managed-control-plane', slug: 'managed-control-plane', + icon: '' }, + { label: 'Accounts & Organizations', href: '/docs/managed-accounts', slug: 'managed-accounts', + icon: '' }, + { label: 'Agent Adoption', href: '/docs/managed-agent-adoption', slug: 'managed-agent-adoption', + icon: '' }, + { label: 'Harness Coverage', href: '/docs/managed-harnesses', slug: 'managed-harnesses', + icon: '' }, + { label: 'Policies & Approvals', href: '/docs/managed-policies', slug: 'managed-policies', + icon: '' }, + { label: 'Fleet & Evidence', href: '/docs/managed-fleet', slug: 'managed-fleet', + icon: '' }, + { label: 'Availability & Readiness', href: '/docs/managed-readiness', slug: 'managed-readiness', + icon: '' }, // Enterprise { section: 'Enterprise', label: 'Security', href: '/docs/security', slug: 'security', icon: '' }, diff --git a/src/data/managedDocs.ts b/src/data/managedDocs.ts new file mode 100644 index 00000000..ece4adc6 --- /dev/null +++ b/src/data/managedDocs.ts @@ -0,0 +1,548 @@ +export interface ManagedDoc { + title: string; + description: string; + body: string; +} + +export const managedDocs: Record = { + 'managed-control-plane': { + title: 'Hosted Agent Control Plane', + description: 'Architecture, operating modes, security boundaries, and data flow for the optional Pilot hosted agent management and policy platform.', + body: `

Hosted agent control plane

+

An optional Pilot-hosted federation, policy, approval, monitoring, and command plane for one agent or a managed fleet.

+ +
Current availability. A live pre-release deployment exists at management.pilotprotocol.network. It is invitation-only and currently serves the preconfigured Pilot demonstration organization. Public organization signup is not available. See Availability & readiness for the exact launch boundary.
+ +

On this page

+ +

Product contract

+

The hosted control plane lets an organization describe what its agents may do, evaluate proposed actions before execution, request human or service approval, inspect actions and exchanged content, operate nodes remotely, and retain signed evidence. It is adjacent to the open Pilot node and protocol: installing Pilot does not automatically place an agent under hosted control.

+

Four boundaries are fundamental:

+
    +
  1. An unmanaged node continues to behave as it did before the hosted platform existed.
  2. +
  3. The management service cannot expand a node's locally pinned trust, mandate, or signed policy ceiling.
  4. +
  5. Semantic analysis can preserve or narrow an executable decision; it cannot turn a deterministic deny into an allow.
  6. +
  7. A configured pre-hook blocks or suspends the side effect before execution. A post-hook records the observed result; it does not retroactively authorize the action.
  8. +
+ +

Optional operating modes

+ + + + + +
ModeBehaviorHosted dependency
off / no hookThe original agent and node behavior is unchanged.None
observeSelected actions are recorded without blocking them.Optional
local_enforceSigned deterministic rules may deny or constrain locally.No per-action hosted decision
managed_enforceSelected actions wait for the hosted deterministic, semantic, and approval path.Required for governed actions
+

Action interception and .pilot state synchronization are separate toggles. Signed fleet reporting is required for a managed adoption because it is how the service verifies the allocated node and returns typed control operations. A newly released action is not silently governed: enforcement profiles use an explicit action inventory or a visible wildcard.

+ +

Decision and evidence flow

+
    +
  1. The agent harness proposes an action with its action name, target resource, risk, request body, session identity, and available context.
  2. +
  3. The native pre-hook or custom SDK wrapper signs the intent with the adopted node identity and sends it to that organization's federation endpoint.
  4. +
  5. The active deterministic policy establishes the maximum authority. The first matching rule wins; the mandatory fallback is deny.
  6. +
  7. If an active reviewed semantic clause applies, Pilot's hosted evaluator receives the exact eligible content and may only preserve or narrow the base result.
  8. +
  9. If consent is required, the action remains suspended in an expiring transaction bound to the exact intent and payload hash. A successful quorum creates a single-use continuation.
  10. +
  11. The node verifies the signed result. It releases, constrains, suspends, or blocks the side effect locally.
  12. +
  13. The post-hook reports the actual result. Pilot correlates intent, policy, semantic evaluation, approval, continuation, result, receipt, fleet activity, and procedure runs.
  14. +
+ +

What runs where

+ + + + + + +
ComponentLocationResponsibility
Pilot node runtimeAgent hostNode identity, trust pins, signed policy, enforcement, receipts, fleet reporting, and state reconciliation.
Harness adapterAgent hostOptional native pre/post hooks or MCP bridge around the action boundary exposed by the harness.
Management servicePilot-hostedAccounts, organizations, policies, approvals, fleet desired state, procedures, audit, evidence, monitoring, and integrations.
Federation servicePilot-hosted, tenant routedReceives signed action intents and exact eligible exchange content; returns a signed narrowed decision.
Semantic evaluatorPilot-hostedEvaluates only active reviewed clauses, records model/version/usage evidence, and never grants above deterministic policy.
+ +

Content and data handling

+

In managed enforcement, Pilot may receive the complete tool arguments, message body, explicit file-share bytes, HTTP body, transaction details, and reported result when the selected adapter exposes them. The exchange record binds exact content to the called resource, hashes, policy revision, decision, and retention metadata. Authorized operators can inspect a bounded preview and audit access to complete retained content.

+

No hidden local semantic inspector is installed. If content must be interpreted semantically, the eligible exchange is routed through the Pilot-hosted federation boundary. With no active semantic clause, deterministic evaluation completes without a model call. Actions configured as local-only remain metadata-governed unless an adapter deliberately federates inspectable content.

+

Private keys, enrollment seeds, account passwords, and root signing material are not rendered in the management interface. The .pilot state view fingerprints protected artifacts and permits mutation only for the explicitly safe, revision-checked subset.

+ +

Feature map

+ + +
Shared responsibility. A harness hook observes the operation proposed through that harness. It is not an operating-system reference monitor. Keep the harness sandbox, workload identity, egress policy, endpoint controls, secret management, and ordinary host hardening.
`, + }, + + 'managed-accounts': { + title: 'Managed Accounts and Organizations', + description: 'Current signup availability, account lifecycle, roles, organization isolation, launch entitlements, and multi-organization behavior in Pilot hosted management.', + body: `

Accounts and organizations

+

How people, service accounts, organizations, tenants, sessions, and adopted agents are separated.

+ +
Can a new user create an account today? No, not through a public self-service flow. As verified on 8 August 2026, /v1/auth/signup returns 404 {"error":"signup_unavailable"}. The live login page is available, but accounts must already exist or be created through an invitation or operator-assisted provisioning path.
+ +

On this page

+ +

Access today

+

The deployed management service serves a preconfigured demonstration organization and supports an ordinary login flow. It is not an open registration service. A person needs a valid existing account or an unexpired, single-use invitation issued by an organization administrator. This is intentional: the development-only open signup route is forbidden in production configuration.

+

After account creation, the first-party identity path supports local password login, password reset, logout, session inventory and revocation, TOTP multifactor authentication, recovery codes, member suspension, and optional OIDC federation. OIDC is an integration, not a prerequisite.

+ +

Intended public signup flow

+

The public SaaS code implements the following workflow, but that provisioner is not deployed on the live service:

+
    +
  1. Enter a work email, organization name, workspace slug, and region.
  2. +
  3. Verify the email through a short-lived signed claim.
  4. +
  5. Reserve a unique organization ID, tenant ID, and account subdomain.
  6. +
  7. Provision tenant signing keys, policy, storage bindings, quotas, and either pooled or dedicated placement.
  8. +
  9. Create a single-use owner invitation on the tenant-scoped identity service.
  10. +
  11. Create the owner password directly on the account host, then continue to agent adoption.
  12. +
+

No password should pass through the global signup service. It verifies and provisions the workspace, then hands the browser to the isolated account origin.

+ +

Organization and tenant isolation

+

Each authority binds one organization to one cryptographic tenant. Browser sessions obtain tenant scope from the authenticated account context; a tenant_id query parameter cannot switch the user into another organization. Object stores and repository keys repeat tenant ownership checks, while signed node artifacts carry the same tenant identity.

+

Enrollment tokens, node credentials, trust bundles, policies, decisions, receipts, fleet reports, exchanges, audit records, and usage units are tenant-bound. A token issued by Organization A cannot produce an Organization B identity. Separate authority cells are the recommended hard boundary for unrelated customers; pooled placement additionally requires database- and credential-level isolation before general release.

+ +

Multiple organizations

+

The product model supports many organizations, each with its own slug, tenant, authority, members, policies, nodes, and evidence. The current live deployment does not yet expose that public multi-organization provisioning layer.

+ + +

Identity and roles

+

Permissions separate account administration, policy writing, independent policy approval, consent voting, trust and mandate administration, fleet commands, integration management, evidence access, and audit administration. Browser mutations require a session-bound CSRF token and same-origin validation.

+ + + + + +
IdentityUseLifecycle
Organization owner/adminMembers, roles, security configuration, and delegated administration.Protected against removing the final administrator.
MemberRole-scoped console and API access.Invite, activate, suspend, reactivate, remove.
Service accountNon-browser automation with explicit permissions.Create, rotate API keys, disable, revoke.
Node identitySigns agent intents, reports, acknowledgements, results, and receipts.Adopt, rotate, quarantine, retire, revoke, re-adopt.
+ +

Launch entitlements and metering

+

Plans are disabled for the initial public launch. Every organization receives the same launch entitlement; users do not select a tier, enter payment details, see upgrade prompts, or pass through Stripe. Billing and plan-management routes must remain hidden or return a clear disabled state.

+

Planless does not mean unbounded. Every tenant still needs hard node, request, semantic-token, storage, retention, and event limits plus rate limiting and abuse controls. Semantic/model usage is attributed by tenant, agent, evaluator, model call, and token counts through an idempotent usage ledger for cost visibility and future product decisions, but it is not invoiced.

+

The data model may retain internal entitlement fields so plans can be introduced later without a tenant migration. Those fields are operational defaults, not a customer-visible commercial contract while plan mode is disabled. A metering or quota failure must never expand action authority.

+ +

Lifecycle boundaries

+

Invitations, sessions, API keys, members, and nodes have explicit terminal states rather than destructive deletion where evidence must remain verifiable. Organization rename, export, deletion, suspension, owner transfer, legal holds, final-admin protection, node revocation, subdomain cleanup, and usage-ledger closure must behave atomically before public SaaS launch. Those complete organization-lifecycle tests remain a release gate.

+ +
Practical answer. Existing invited users can log in and use the deployed demonstration organization. A new unrelated company cannot yet self-register, receive its own subdomain, and adopt an agent without operator assistance.
`, + }, + + 'managed-agent-adoption': { + title: 'Managed Agent Adoption', + description: 'Step-by-step managed node adoption, one-time enrollment security, optional control toggles, signed verification, and organization reassignment.', + body: `

Managed agent adoption

+

Adopt the core Pilot node first; attach a harness action boundary only when in-flight control is wanted.

+ +

On this page

+ +

Prerequisites

+ + +

Adoption workflow

+
    +
  1. Open Connect an agent in the management console.
  2. +
  3. Select the real harness that runs the agent. The selection records the expected capability boundary; it does not pretend every harness has universal interception.
  4. +
  5. Enter a node display name and choose action interception and .pilot state synchronization. Fleet reporting is required.
  6. +
  7. Select Create one-time command. Pilot allocates the agent ID server-side and returns a high-entropy claim that expires after 15 minutes and is consumed once.
  8. +
  9. Run the displayed command on the agent host:
  10. +
+
curl -fsSL https://pilotprotocol.network/install.sh | \
+  PILOT_ENROLLMENT_TOKEN='<one-time token>' sh -s -- \
+  --managed-url https://management.pilotprotocol.network
+
    +
  1. If action interception is enabled, run the separate, version-pinned harness attachment command shown by the console, for example npx -y pilotprotocol-mcp@0.2.13 attach --gemini.
  2. +
  3. Return to the waiting page. Pilot accepts completion only after the allocated identity sends a fresh signed report carrying the exact harness and onboarding-run marker.
  4. +
  5. Create and activate a language policy, then attempt a real violating action. The guided flow completes only after it observes a semantic denial for that exact agent before the side effect.
  6. +
+

The token is a short-lived bearer secret. Do not put the generated command in tickets, chat, source control, shared shell history, process supervisors, or screenshots.

+ +

What the one-time claim installs

+

The installer downloads the management-authority-pinned managed runtime, then calls pilotctl enterprise adopt. The service returns exactly one delegated node identity plus the public root pin, signed trust bundle, signed bootstrap policy, organization endpoints, adoption options, and run identity. The browser never creates a node key.

+

The client verifies that the credential, key, trust bundle, policy, tenant, agent ID, and HTTPS authority origins agree. It then atomically writes an owner-only attachment under $HOME/.pilot/managed/:

+ +

The enrollment token is stored server-side only as a hash, consumed before private credential material is released, removed from the process environment, and never reused. Unknown, expired, and consumed tokens return the same generic error.

+ +

Optional controls

+ + + + +
OptionWhen enabledWhen disabled
Fleet connectionSigned health, desired state, rollout, and typed commands.Not a managed adoption; this option is required.
In-flight action controlSelected harness actions wait for signed hosted decisions and produce receipts.Ordinary harness actions remain unchanged.
.pilot state visibilitySafe state manifests and revision-checked mutations synchronize over the fleet channel.No state tree or remote state mutation.
+

Core adoption installs the node runtime; it does not install pilot-mcp. Harness attachment is a separate opt-in integration that reads the existing managed attachment. See Harness coverage.

+ +

How Pilot verifies adoption

+

The console does not trust a client-side success message. It checks:

+ + +

Moving or replacing a node

+

A managed identity is not portable between organizations. The installer deliberately refuses a new enrollment token when $HOME/.pilot/managed/enterprise-control.json already exists. To replace or move a node, an administrator must retire or revoke the old identity, preserve required evidence, remove the old managed attachment through an approved local decommissioning procedure, and issue a fresh organization-bound adoption. There is no public self-service cross-organization transfer workflow today.

+

Do not copy agent.seed or the complete managed directory to clone a node. Each runtime instance should receive a distinct delegated identity and appear separately in fleet inventory.

+ +

Unmanaged compatibility

+

Running the ordinary Pilot installer without --managed-url and without an enrollment token preserves unmanaged behavior. Installing a harness adapter without a valid owner-only managed attachment is a zero-side-effect pass-through. Disabling or removing an optional harness boundary should restore the harness's original execution path, subject to that harness's own configuration.

+ +
Before calling a node governed: prove an allowed action, a denied action with no side effect, an approval that resumes only the exact request, an expired approval that stays blocked, a failed tool with terminal evidence, and the documented hook-timeout behavior.
`, + }, + + 'managed-harnesses': { + title: 'Managed Harness Coverage', + description: 'Exact Pilot interception boundaries, attachment commands, failure modes, and production validation requirements for supported agent harnesses.', + body: `

Harness coverage

+

A connector is only as complete as the native action boundary its harness actually exposes.

+ +
Core node management is harness-independent. Adoption, signed reporting, policy rollout, typed commands, and safe state synchronization belong to core Pilot. The optional harness adapter adds in-flight control only around the tool, message, or SDK events listed here.
+ +

Coverage matrix

+ + + + + + + + + + + + + + + +
HarnessCurrent boundaryImportant limitation
Claude CodeLive-verified PreToolUse, PostToolUse, and failure events for built-in and MCP tools.A Bash hook sees the proposed command, not every syscall made by its child process.
Codex CLINative pre/post tool hooks plus Pilot MCP.User hooks require review/trust; specialized hosted paths may opt out unless managed requirements cover them.
Gemini CLINative BeforeTool/AfterTool; real allow, result, and denial paths exercised.Model-request interception is separate, and identical parallel calls have limited post-call correlation.
GitHub Copilot CLILocal and repository preToolUse/postToolUse contracts.Documented timeouts fail open; cloud agents need committed repository hooks and reachable ingress.
OpenHandsClaude-compatible pre/post hooks per repository.User-home configuration is not fleet-wide; distribute the repository contract to every workspace.
OpenClawBundled plugin for built-in tools, results, and outbound messages.Only OpenClaw-owned paths are covered; retain sandbox and egress controls.
Hermes AgentNative CLI/Gateway pre/post tool hooks; pinned wire protocol verified.Malformed output, process death, and timeout behavior requires additional containment because upstream failure modes may be fail open.
ClineGlobal PreToolUse/PostToolUse scripts for desktop and SDK-hosted tools.Hook crashes and timeouts are documented as fail open; existing global hooks must be composed explicitly.
CursorNative pre/post tool hooks with fail-closed Pilot preflights.User hooks do not reach cloud agents; use repository, team, or enterprise distribution there.
ContinuePilot MCP calls plus Continue's static allow/ask/exclude permissions.No universal external pre/post hook was found; do not claim whole-agent semantic control.
JetBrains JuniePilot MCP plus Junie's action allowlist.Native Junie actions remain outside Pilot evaluation without a supported interception API.
PicoClawJSON-RPC process hooks for before_tool/after_tool.The upstream runtime is pre-1.0. Pin and certify an exact build; it is not production-certified.
Any MCP clientComplete arguments and results for calls to the Pilot MCP server.Installing Pilot MCP does not intercept other MCP servers or built-in shell, browser, or file tools.
Custom SDK hostPotentially complete BeforeAction/AfterAction wrapping around host-owned side effects.Unwrapped adapters remain outside control; the host must attest and test the complete action inventory.
+ +

Attach after adoption

+

Use the version-pinned command shown by the onboarding page. Examples:

+
npx -y pilotprotocol-mcp@0.2.13 attach --claude
+npx -y pilotprotocol-mcp@0.2.13 attach --codex
+npx -y pilotprotocol-mcp@0.2.13 attach --gemini
+npx -y pilotprotocol-mcp@0.2.13 attach --openclaw
+npx -y pilotprotocol-mcp@0.2.13 attach --hermes
+

The adapter verifies that $HOME/.pilot/managed/enterprise-control.json is a regular owner-owned file with owner-only permissions. It merges supported hook configuration without deliberately replacing an unrelated existing hook. Some harnesses require an explicit restart, trust review, repository-level file, or first-use command approval; follow the connector-specific instructions displayed in the console.

+ +

What Pilot receives

+

Where the harness supplies it, a pre-hook sends the canonical action, called tool, complete parameters, explicit file bytes, destination, session and working-directory correlation, permission mode, and timing metadata. A post-hook adds the result, response content, duration, or failure. The hosted exchange makes those fields visible alongside the signed policy and decision.

+

Coverage must be stated per event. An outbound-message hook can govern message delivery even when it is not a general tool hook. MCP coverage means Pilot sees calls to Pilot MCP, not the entire agent. A shell hook is not kernel mediation.

+ +

Failure posture

+

Pilot can emit a valid deny when the hosted decision service is reachable but rejects or times out according to policy. It cannot prevent a harness from killing or bypassing its hook process if the harness itself defines that path as fail open. For high-risk actions, choose harnesses and deployment controls that can enforce the required failure posture.

+ + +

Production certification checklist

+
    +
  1. Inventory every side-effect path: process, file, browser, HTTP, MCP, messages, transfers, trust, events, and payments.
  2. +
  3. Prove an allowed action runs and produces a completed exchange.
  4. +
  5. Prove a denied action leaves no external artifact.
  6. +
  7. Prove approval, exact continuation, expiry, cancellation, and replay rejection.
  8. +
  9. Prove failed tool and post-hook evidence is terminal and non-replaying.
  10. +
  11. Kill and time out the hook to confirm the actual failure posture.
  12. +
  13. Disable the attachment and verify the original unmanaged behavior returns.
  14. +
+ +
Do not infer coverage from a logo. The connector's signed capability report and recent runtime evidence determine what a policy can truthfully claim to enforce.
`, + }, + + 'managed-policies': { + title: 'Managed Policies and Approvals', + description: 'Create deterministic and natural-language agent policies, use hosted semantic narrowing, request expiring approval, and deploy signed revisions.', + body: `

Policies and approvals

+

Pilot separates operator intent, executable policy, semantic interpretation, consent, rollout, and post-action response.

+ +

On this page

+ +

Choose a control surface

+ + + + + + +
SurfaceUse it forRuntime effect
Signed policy ruleExact node, action, resource, risk, disclosure, amount, destination, or approval behavior.The first matching rule establishes the deterministic ceiling.
Policy statementHuman-readable restrictions such as “Do not accept trust from anyone.”Compiles into reviewed deterministic rules and/or semantic clauses; no effect until rollout activation.
Semantic clauseMeaning that cannot be resolved from exact metadata, such as confidential content leaving the company.A hosted evaluator may deny or request the pinned approval plan; it never grants above the base answer.
Approval planEligible approvers, quorum, validity, approved outcome, and constraints.May create one payload-bound, single-use continuation after quorum.
ProcedureAlert, investigate, quarantine, refresh, export, or notify after an outcome.Runs after durable activity and cannot modify the original authorization.
+ +

Governed actions

+

The managed action vocabulary covers browser navigation; process execution; arbitrary tool invocation; HTTP and webhook requests; data read, export, and text/JSON/binary send; file read, write, delete, and share; event publication; trust request, accept, auto-accept, reject, revoke; wallet payment; and custom registered actions.

+

Policies also bind the target resource, risk, recipient, purpose, labels, content type, residency, retention class, transaction value, destination, and node scope where relevant. An adapter must report an action before Pilot can govern it. Publishing a rule does not create interception.

+ +

Natural-language policy workflow

+
    +
  1. Create or select an approval-plan revision first if the desired semantic outcome is approval.
  2. +
  3. Open Policy statements and create a statement with an explicit node scope. * means all nodes in the tenant.
  4. +
  5. Enter the ordinary-language instruction. Add entity-to-resource bindings when a human name must map to a canonical target.
  6. +
  7. Select exact action hints for content-sensitive meaning. Semantic fallback is opt-in and limited to the reviewed deny or approval outcome.
  8. +
  9. Compile the statement. Inspect the source hash, compiler version, deterministic rules, semantic clauses, failure posture, warnings, and unresolved phrases.
  10. +
  11. Edit and recompile until the interpretation is exact. Unresolved compilation cannot enter review.
  12. +
  13. Submit review, approve the source, create a signed rollout draft, inspect its diff and simulations, publish it, obtain signed node acknowledgements, and activate it.
  14. +
+

A prose sentence is never sent directly to a model as unrestricted authority. It remains a revisioned source object bound to the reviewed compilation and active signed policy revision.

+ +

Structured policy workflow

+
    +
  1. Select the target node or fleet scope.
  2. +
  3. Choose registered actions, resource prefixes, and applicable risk classes.
  4. +
  5. Select deny, allow, allow with constraints, or approval required.
  6. +
  7. For constraints, set maximum value, allowed destinations, and typed disclosure requirements.
  8. +
  9. For approval, select the exact immutable approval-plan revision.
  10. +
  11. Enter a title and auditable reason; choose full-fleet or canary rollout and acknowledgement thresholds.
  12. +
  13. Create the inactive candidate, run diff and deterministic simulation, obtain required independent approval, publish, then activate.
  14. +
+

Editing produces a higher immutable revision. Removing a rule is also a reviewed signed change. Rollback creates a new higher revision rather than lowering a node's rollback floor.

+ +

Runtime order and composition

+
    +
  1. Locally pinned trust and mandate define the hard maximum.
  2. +
  3. The active signed policy evaluates deterministic rules in document order. The first match wins; no match means deny.
  4. +
  5. An eligible active semantic clause may inspect exact hosted content. Semantic allow preserves the base result; deny or approval may narrow it. A base deny remains deny.
  6. +
  7. Conflicting semantic approval plans fail closed. Evaluator, model, prompt, policy, clause, timeout, failure mode, and usage metadata are journaled.
  8. +
  9. The node verifies the final signed result before releasing or blocking the side effect.
  10. +
+

No active semantic clause means no model call and no semantic usage charge. High- and critical-risk failure posture should be explicitly fail closed when the business requirement cannot tolerate an unevaluated action.

+ +

Approval and continuation

+

An approval plan is tenant-scoped and immutable by revision. It lists purpose-limited approver keys, required quorum, validity duration, approved outcome, and optional constraints. A transaction binds the exact signed intent and payload hash. Distinct eligible signatures count toward quorum.

+

Approval is not a reusable exception. Quorum creates one single-use continuation for the same request. Rejection, cancellation, expiry, payload mismatch, agent mismatch, plan mismatch, or replay remains blocked. The node stores payload-free continuation state with exclusive creation and a restart-safe lease so at most one resume attempt can occur.

+ +

Examples

+ + + + + +
Operator statementCompiled or runtime meaning
Don't accept trust from anyone.Deterministic deny for trust.accept and trust.auto_accept on the selected nodes.
Do not transact with Acme.After binding Acme to a canonical merchant resource, deny matching wallet.pay actions.
Do not send confidential material outside the company.Explicit send/share scope plus a reviewed hosted semantic clause that may deny or request security approval.
Finance may pay approved-vendor up to 1,000 USD.Structured node/action/resource rule with amount and destination constraints.
+ +

Prove enforcement

+
    +
  1. Confirm the target node reports a blocking capability for the governed action.
  2. +
  3. Activate the exact signed policy revision and wait for the node acknowledgement.
  4. +
  5. Run one allowed action and inspect its complete exchange and post-hook result.
  6. +
  7. Run a violation with a distinctive inert marker.
  8. +
  9. Confirm the decision cites the expected deterministic rule or semantic clause.
  10. +
  11. Confirm the external side effect or marker does not exist.
  12. +
  13. Test approval, expiry, cancellation, replay, evaluator outage, and hook timeout separately.
  14. +
+ +
Policy presence is not enforcement proof. Pilot's coverage report combines the signed connector capability, action inventory, blocking/approval support, receipts, and recent runtime evidence. Uncovered targets require an explicit audited exception.
`, + }, + + 'managed-fleet': { + title: 'Managed Fleet and Evidence', + description: 'Operate Pilot nodes remotely, inspect signed state and exchanges, monitor health, automate responses, and retain tenant-scoped audit evidence.', + body: `

Fleet, evidence, and operations

+

Signed inventory, desired state, typed control, exact exchange evidence, audit, monitoring, and bounded automation.

+ +

On this page

+ +

Inventory and health

+

The native management dashboard summarizes connected nodes, policy coverage, decision outcomes, pending approvals, evaluator health, command state, and recent activity. Fleet views support server-side filters and pagination for node status, group, tag, policy drift, connector capability, runtime version, and last report time.

+

Each node detail joins its signed identity, harness and connector versions, uptime, counters, connectivity, current and desired policy revisions, groups, tags, quarantine posture, recent actions, receipts, commands, state root, and acknowledgements. A stale or missing report is visible; the UI does not silently treat configured state as observed state.

+ +

Desired state and drift

+

Authority-signed desired state can set group, tags, desired runtime version, desired policy revision, and quarantine posture. The node verifies the command key and monotonic floors, persists before applying, reconciles locally, then returns a signed applied, partially_applied, or rejected acknowledgement. Drift remains visible until the reported state converges.

+

Runtime version is a desired target, not permission for the control plane to replace arbitrary executables. The deployment supervisor remains responsible for changing installed software.

+ +

Remote commands

+

Remote operations are typed, targeted, authority-signed, reason-bound, expiring, cancellable, and auditable. Supported commands are:

+ +

Pilot is not a remote shell. Operators cannot type arbitrary commands into the fleet console. Nodes return bounded signed result codes, and protected local authority cannot be widened through command parameters.

+ +

.pilot state visibility

+

An adopted node can report a signed manifest of its managed state directory: relative paths, file or directory kind, size, mode, modification time, content hash, revision, and root hash. Safe text files may expose sanitized or bounded content. Keys, seeds, credentials, identity, policy internals, trust material, and rollback floors are fingerprint-only and immutable through this channel.

+

Supported state changes use optimistic concurrency. A mutation names the expected tree revision and existing file hash, contains an auditable reason, expires, and is signed by the authority. The node independently validates safe paths and modes, applies the change locally, and reports the resulting signed revision. History records additions, changes, removals, and root hashes.

+ +

Exchanges and tracing

+

The Exchanges workspace stores tenant-scoped request and response evidence with server-side search and pagination. A detail view correlates:

+ +

Browser previews are bounded. Complete retained objects require explicit evidence permission and an audited download. Audit metadata and exact exchange content are separate stores with different access and retention concerns.

+ +

Audit and investigations

+

Management mutations write an append-only attempt event and a terminal result event. Records include actor, roles, authentication method, operation, reason, correlation ID, status, duration, and request/response hashes without copying secrets. Operators can filter, paginate, inspect, export NDJSON, monitor continuous delivery, and retry dead-letter exports.

+

Investigations have assignee, severity, status, resolution, timestamps, and links to action, exchange, receipt, command, and audit evidence. Legal hold and retention policy preserve required objects. Signed action receipts are verified at ingest and may be mirrored into compliance-retention object storage.

+ +

Procedures

+

Procedures are immutable, revisioned, post-action response policies. Triggers match action, node, risk, decision, or observed result. The closed response vocabulary can create an alert, open an investigation, quarantine a node, request policy refresh, request receipt export, or notify an active integration.

+

A run is durable and idempotent for the activity and procedure revision. Procedures cannot grant or retry the original action, inspect arbitrary content, execute shell commands, or invent remote methods.

+ +

External integrations

+ + + + + + + + +
KindPurposeLifecycle
OIDC / KeycloakOptional workforce identity federation.Stage, inspect, probe, activate, rotate, disable.
OpenBao / KMSExternal signing-key custody.Reference-only secrets and signature verification.
S3-compatible Object LockImmutable receipt and evidence mirror.Retention and legal-hold evidence.
PostgreSQLReplica-safe shared authority state.TLS, migrations, backup, restore, and health.
Prometheus-compatible storageMetrics retention.Pilot's native UI remains the operator dashboard.
Usage sinkAsynchronous idempotent commercial usage delivery.Tenant-scoped credentials and delivery health.
Audit/SIEM and webhookManagement export, approval, and procedure notifications.Retry, dead letter, health, and rotation.
+

Connectors store secret references, not rendered secret values. Hosted semantic evaluation is Pilot platform infrastructure and is not configured as a customer-owned integration.

+ +

Object lifecycle

+ + + + + + + +
ObjectCreateChangeTerminal behavior
NodeOne-time adopted identity and signed report.Desired state, tags, groups, quarantine, commands.Retire or revoke; reactivate only where policy permits.
Policy statementInactive source revision.Compile, review, approve, deploy.Reject or retire; signed policy removal is a higher revision.
Policy changeDraft candidate.Diff, simulate, approve, publish, canary, promote.Withdraw, terminate, or monotonic rollback.
Approval transactionExact intent and payload binding.Vote, escalate, cancel.Execute once, reject, cancel, or expire.
ProcedureInactive draft revision.New revision, activate, disable.Retire while retaining run evidence.
IntegrationStaged revision.Probe, activate, rotate, disable.Retain revision and audit history.
+ +
High-volume behavior. Fleet, exchanges, approvals, receipts, audit, procedures, and activity lists use tenant-scoped server-side filters and pagination. Production sizing still requires load, retention, backup, and failover evidence for the intended fleet and event rate.
`, + }, + + 'managed-readiness': { + title: 'Hosted Availability and Readiness', + description: 'Honest current availability, production-readiness status, validated control-plane functionality, remaining launch blockers, and deployment guidance.', + body: `

Availability and production readiness

+

What is live, what has been proved, and what still prevents a general production launch.

+ +
Verdict as of 8 August 2026. The hosted management deployment is online and its central enforcement path has been validated with real adopted agents. It is not production-grade as a public multi-tenant SaaS. It should be described as a production-hosted pre-release or design-partner environment, not generally available production service.
+ +

On this page

+ +

Current live status

+ + + + + + + + + + +
CapabilityStatusMeaning
Management loginLiveThe HTTPS login page is reachable and existing accounts can authenticate.
Public account signupNot deployed/v1/auth/signup returns signup_unavailable; new unrelated organizations cannot self-register.
Organization availabilitySingle preconfigured tenantThe live service currently serves the Pilot demonstration organization.
Managed node adoptionLive for the configured tenantShort-lived one-time enrollment, verified delegated identity, bootstrap policy, and signed first report work.
Policy and semantic denialValidatedA real Gemini-driven adopted agent was denied before executing a prohibited command; the expected filesystem side effect was absent.
Policy, approval, fleet, state, audit UIValidated pre-releasePrimary CRUD/lifecycle paths and 31 management pages have passed production-host UI sweeps.
Harness adaptersMixed by harnessSeveral native paths are verified; partial and fail-open connectors remain explicitly labelled.
Plans and paymentsDisabled by product decisionPublic launch has one common entitlement, no checkout, no upgrade UI, and no customer charging. Usage remains measured for cost control.
Public multi-tenant platformNot deployedThe SaaS provisioner, pooled runtime, account subdomains, and workspace controller are implemented/tested locally but not installed in the hosted GCP environment.
+ +

What has been proved

+ +

These proofs establish that the core security concept works. They do not establish the operational, organizational, and provider controls required for a generally available SaaS.

+ +

Actual public SaaS blockers

+

There are seven launch gates. Plans and Stripe are deliberately disabled and are not an eighth gate.

+
    +
  1. Signup and provisioning: deploy and prove the full email verification, workspace reservation, owner creation, exact account subdomain, first session, adoption, retry, rollback, and cleanup journey without operator intervention.
  2. +
  3. Tenant isolation: add a database-enforced boundary such as PostgreSQL RLS with mandatory tenant context or separate credentials/schema, then prove host routing, secrets, workers, caches, exports, logs, metrics, and backups cannot cross organizations.
  4. +
  5. GCP KMS and storage integration: exercise native Cloud KMS signing/content-key wrapping and native Cloud Storage conditional writes, locked retention, legal hold, rotation, restore, outage, and cross-tenant denial through workload identity.
  6. +
  7. Quotas and abuse controls: enforce distributed signup defenses plus hard node, request, event, content, storage, retention, queue, and semantic-spend ceilings, noisy-neighbor isolation, reservation cleanup, and operator response.
  8. +
  9. Organization lifecycle: prove audited rename, owner transfer, suspension/resume, export, deletion, legal hold, node and credential revocation, usage closure, subdomain cleanup, retry, and partial-failure recovery.
  10. +
  11. Load and disaster-recovery evidence: retain the declared workload envelope, latency/error/saturation and soak results, backup/PITR and object restore, key recovery, failover, provider outage, rolling upgrade, rollback, and measured RPO/RTO.
  12. +
  13. Security assurance: complete independent penetration and architecture review, close findings, approve the pooled-tenancy, hosted-content/LLM, hook-bypass, privileged-support, supply-chain, recovery, and abuse threat models, and retain exact-release security evidence.
  14. +
+ +

What production-grade means here

+

A service being deployed on a production hostname is not enough. General production readiness requires all of the following:

+ + +

Where it is appropriate today

+ + + + + + +
Use caseRecommendation
Internal demonstration with the existing tenantYes. The live environment and permanent proof agents support this use.
Supervised design-partner evaluationYes, with a written scope, connector boundary, data/retention agreement, and operational owner.
Single-organization production pilotConditional. Perform organization-specific threat modelling, capacity tests, backup/restore, key custody, and incident readiness first.
Open public self-service SaaSNo. Signup, provisioning, multi-tenant hardening, planless cost controls, and cloud platform gates remain.
Regulated or safety-critical autonomous productionNo general approval. It requires independent assurance, exact harness certification, retention/legal review, and customer-specific controls.
+ +
Status discipline. This page records a dated deployment assessment, not a permanent guarantee. Reassess it after every authority, adapter, cloud, identity, evaluator, entitlement, or quota release.
`, + }, +}; diff --git a/src/pages/docs/index.astro b/src/pages/docs/index.astro index 99c1adc9..a95029f5 100644 --- a/src/pages/docs/index.astro +++ b/src/pages/docs/index.astro @@ -9,6 +9,13 @@ const cards: { slug: string; href: string; label: string; desc: string; icon?: s { slug: 'service-agents', href: 'service-agents', label: 'Service Agents', desc: '430+ live specialists — discover, handshake, and query structured data with no API keys.' }, { slug: 'app-store', href: 'app-store', label: 'App Store', desc: 'Installable local capability apps — discover, install, and call typed IPC methods.' }, { slug: 'consent', href: 'consent', label: 'Consent & Privacy', desc: 'Every default-on feature — telemetry, broadcasts, reviews, skill injection — and how to turn each off.' }, + { slug: 'managed-control-plane', href: 'managed-control-plane', label: 'Hosted Control Plane', desc: 'Optional hosted policy, approval, monitoring, evidence, and command infrastructure for agents.' }, + { slug: 'managed-accounts', href: 'managed-accounts', label: 'Accounts & Organizations', desc: 'Current signup availability, tenant isolation, roles, launch entitlements, and multi-organization behavior.' }, + { slug: 'managed-agent-adoption', href: 'managed-agent-adoption', label: 'Agent Adoption', desc: 'Claim a tenant-bound identity, verify the first signed report, and optionally attach action control.' }, + { slug: 'managed-harnesses', href: 'managed-harnesses', label: 'Harness Coverage', desc: 'Exact native hook boundaries, failure modes, and certification requirements by agent harness.' }, + { slug: 'managed-policies', href: 'managed-policies', label: 'Policies & Approvals', desc: 'Structured rules, language policies, semantic narrowing, signed rollout, and expiring consent.' }, + { slug: 'managed-fleet', href: 'managed-fleet', label: 'Fleet & Evidence', desc: 'Remote desired state, typed commands, safe state synchronization, exchanges, audit, and procedures.' }, + { slug: 'managed-readiness', href: 'managed-readiness', label: 'Availability & Readiness', desc: 'A dated, honest account of what is live, what is proved, and what still blocks production launch.' }, { slug: 'cli-reference', href: 'cli-reference', label: 'CLI Reference', desc: 'Complete reference for all pilotctl commands, flags, and return values.' }, { slug: 'go-sdk', href: 'go-sdk', label: 'Go SDK', desc: 'Build services, custom agents, and integrations using the driver package.' }, { slug: 'messaging', href: 'messaging', label: 'Messaging', desc: 'Connect, send messages, transfer files, and use the inbox.' }, diff --git a/src/pages/docs/managed-accounts.astro b/src/pages/docs/managed-accounts.astro new file mode 100644 index 00000000..4bff8e15 --- /dev/null +++ b/src/pages/docs/managed-accounts.astro @@ -0,0 +1,16 @@ +--- +import DocLayout from '../../layouts/DocLayout.astro'; +import { managedDocs } from '../../data/managedDocs'; + +const doc = managedDocs['managed-accounts']; +--- + + + diff --git a/src/pages/docs/managed-agent-adoption.astro b/src/pages/docs/managed-agent-adoption.astro new file mode 100644 index 00000000..9088a170 --- /dev/null +++ b/src/pages/docs/managed-agent-adoption.astro @@ -0,0 +1,16 @@ +--- +import DocLayout from '../../layouts/DocLayout.astro'; +import { managedDocs } from '../../data/managedDocs'; + +const doc = managedDocs['managed-agent-adoption']; +--- + + + diff --git a/src/pages/docs/managed-control-plane.astro b/src/pages/docs/managed-control-plane.astro new file mode 100644 index 00000000..be8ccb6a --- /dev/null +++ b/src/pages/docs/managed-control-plane.astro @@ -0,0 +1,16 @@ +--- +import DocLayout from '../../layouts/DocLayout.astro'; +import { managedDocs } from '../../data/managedDocs'; + +const doc = managedDocs['managed-control-plane']; +--- + + + diff --git a/src/pages/docs/managed-fleet.astro b/src/pages/docs/managed-fleet.astro new file mode 100644 index 00000000..977a0167 --- /dev/null +++ b/src/pages/docs/managed-fleet.astro @@ -0,0 +1,16 @@ +--- +import DocLayout from '../../layouts/DocLayout.astro'; +import { managedDocs } from '../../data/managedDocs'; + +const doc = managedDocs['managed-fleet']; +--- + + + diff --git a/src/pages/docs/managed-harnesses.astro b/src/pages/docs/managed-harnesses.astro new file mode 100644 index 00000000..453bcf06 --- /dev/null +++ b/src/pages/docs/managed-harnesses.astro @@ -0,0 +1,16 @@ +--- +import DocLayout from '../../layouts/DocLayout.astro'; +import { managedDocs } from '../../data/managedDocs'; + +const doc = managedDocs['managed-harnesses']; +--- + + + diff --git a/src/pages/docs/managed-policies.astro b/src/pages/docs/managed-policies.astro new file mode 100644 index 00000000..d9ec1781 --- /dev/null +++ b/src/pages/docs/managed-policies.astro @@ -0,0 +1,16 @@ +--- +import DocLayout from '../../layouts/DocLayout.astro'; +import { managedDocs } from '../../data/managedDocs'; + +const doc = managedDocs['managed-policies']; +--- + + + diff --git a/src/pages/docs/managed-readiness.astro b/src/pages/docs/managed-readiness.astro new file mode 100644 index 00000000..462b9683 --- /dev/null +++ b/src/pages/docs/managed-readiness.astro @@ -0,0 +1,16 @@ +--- +import DocLayout from '../../layouts/DocLayout.astro'; +import { managedDocs } from '../../data/managedDocs'; + +const doc = managedDocs['managed-readiness']; +--- + + + diff --git a/src/pages/plain/docs/index.astro b/src/pages/plain/docs/index.astro index 9686ea96..df8350a6 100644 --- a/src/pages/plain/docs/index.astro +++ b/src/pages/plain/docs/index.astro @@ -1,7 +1,7 @@ --- // Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run. // plain-source: src/pages/docs/index.astro -// plain-source-sha256: 117a327f8c1b807b16a5a93d4e8053968acd9ee8ea959446af4cd14bfa025836 +// plain-source-sha256: b882716de797562d39670cfe800c3697c401120fcdc02116fdb3eb3f4559c9e3 import PlainLayout from '../../../layouts/PlainLayout.astro'; --- @@ -38,6 +38,13 @@ import PlainLayout from '../../../layouts/PlainLayout.astro';
  • Service Agents: 430+ live specialists — discover, handshake, and query structured data with no API keys.
  • App Store: Installable local capability apps — discover, install, and call typed IPC methods.
  • Consent & Privacy: Every default-on feature — telemetry, broadcasts, reviews, skill injection — and how to turn each off.
  • +
  • Hosted Control Plane: Optional hosted policy, approval, monitoring, evidence, and command infrastructure for agents.
  • +
  • Accounts & Organizations: Current signup availability, tenant isolation, roles, launch entitlements, and multi-organization behavior.
  • +
  • Agent Adoption: Claim a tenant-bound identity, verify the first signed report, and optionally attach action control.
  • +
  • Harness Coverage: Exact native hook boundaries, failure modes, and certification requirements by agent harness.
  • +
  • Policies & Approvals: Structured rules, language policies, semantic narrowing, signed rollout, and expiring consent.
  • +
  • Fleet & Evidence: Remote desired state, typed commands, safe state synchronization, exchanges, audit, and procedures.
  • +
  • Availability & Readiness: A dated account of what is live, what is proved, and what still blocks production launch.
  • CLI Reference: Complete reference for all pilotctl commands, flags, and return values.
  • Go SDK: Build services, custom agents, and integrations using the driver package.
  • Messaging: Connect, send messages, transfer files, and use the inbox.
  • @@ -59,6 +66,8 @@ import PlainLayout from '../../../layouts/PlainLayout.astro';
  • Getting Started
  • Core Concepts
  • CLI Reference
  • +
  • Hosted Control Plane
  • +
  • Availability & Readiness
  • Research
  • diff --git a/src/pages/plain/docs/managed-accounts.astro b/src/pages/plain/docs/managed-accounts.astro new file mode 100644 index 00000000..5b0dca0b --- /dev/null +++ b/src/pages/plain/docs/managed-accounts.astro @@ -0,0 +1,36 @@ +--- +// Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run. +// plain-source: src/pages/docs/managed-accounts.astro +// plain-source-sha256: 4d88e5ad027ff566d795f6aa68e9cb3901aded932eb519d0eeb4b838caa1a431 +import PlainLayout from '../../../layouts/PlainLayout.astro'; +--- + + +

    ← Docs index

    + +

    Managed Accounts

    + +

    A managed account provides a dedicated, managed Teleport cluster. This document describes account setup, billing, and connecting infrastructure.

    + +

    Account Setup

    +

    A new cluster is provisioned when signing up for a managed service. The first user is granted administrator privileges. Other team members can be invited, and roles and permissions can be configured.

    + +

    Billing and Subscriptions

    +

    The subscription is managed through a customer dashboard. Several tiers are offered.

    +
      +
    • Free Tier: Limited users, community support.
    • +
    • Pro Tier: Unlimited users, business hours support.
    • +
    • Enterprise Tier: Custom features, dedicated support, SLAs.
    • +
    + +

    Connecting Infrastructure

    +

    The Teleport agent is required to connect servers, databases, or Kubernetes clusters. The agent establishes a reverse tunnel to the managed Teleport cluster.

    +
    teleport start --roles=node --token=YOUR_JOIN_TOKEN --auth-server=your-cluster.teleport.sh:443
    + +

    Related

    + + +
    diff --git a/src/pages/plain/docs/managed-agent-adoption.astro b/src/pages/plain/docs/managed-agent-adoption.astro new file mode 100644 index 00000000..85a22b6c --- /dev/null +++ b/src/pages/plain/docs/managed-agent-adoption.astro @@ -0,0 +1,23 @@ +--- +// Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run. +// plain-source: src/pages/docs/managed-agent-adoption.astro +// plain-source-sha256: b12d0f51096e90d8d8c42a9484a3939f058c3dd2d15cb8ca9b33c238cd7c337a +import PlainLayout from '../../../layouts/PlainLayout.astro'; +--- + + +

    ← Docs index

    + +

    + +

    + + + +

    Related

    + + +
    diff --git a/src/pages/plain/docs/managed-control-plane.astro b/src/pages/plain/docs/managed-control-plane.astro new file mode 100644 index 00000000..0188d343 --- /dev/null +++ b/src/pages/plain/docs/managed-control-plane.astro @@ -0,0 +1,39 @@ +--- +// Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run. +// plain-source: src/pages/docs/managed-control-plane.astro +// plain-source-sha256: f3dfc21b561e0fb2dbe147a2446d55101e8c1f2f6e0ad1f3bc42a1b43869c815 +import PlainLayout from '../../../layouts/PlainLayout.astro'; +--- + + +

    ← Docs index

    + +

    Managed Control Plane

    + +

    The Netlify Managed Control Plane is a dedicated, single-tenant instance of Netlify’s control plane for enterprise teams. It provides the developer experience of the multi-tenant platform with additional security, compliance, and performance features.

    + +

    Key Features

    +
      +
    • Single-tenant architecture: Isolates data and operations from other tenants.
    • +
    • Enhanced security: Includes private connectivity options, dedicated IP ranges, and advanced access controls.
    • +
    • Compliance-ready: Supports regulatory requirements such as SOC 2, HIPAA, and GDPR with dedicated infrastructure and data residency options.
    • +
    • Guaranteed performance: Provides Service Level Agreements (SLAs) for uptime and performance.
    • +
    • Custom integrations: Integrates with enterprise systems such as private Git repositories, identity providers (IdPs), and observability tools.
    • +
    + +

    How it works

    +

    The Managed Control Plane is deployed in a dedicated environment within a chosen cloud region. Netlify manages the infrastructure, updates, and maintenance.

    +

    Developers interact with the Managed Control Plane through the Netlify UI, CLI, and API. The underlying infrastructure is dedicated to a single organization.

    + +

    Getting Started

    +

    The Managed Control Plane requires an Enterprise plan. Netlify provisions a dedicated instance and provides a unique URL to access it, for example:

    +
    https://app.your-company.netlify.com
    +

    After setup, team members can be invited, Git repositories connected, and sites deployed from the control plane.

    + +

    Related

    + + +
    diff --git a/src/pages/plain/docs/managed-fleet.astro b/src/pages/plain/docs/managed-fleet.astro new file mode 100644 index 00000000..9d413682 --- /dev/null +++ b/src/pages/plain/docs/managed-fleet.astro @@ -0,0 +1,38 @@ +--- +// Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run. +// plain-source: src/pages/docs/managed-fleet.astro +// plain-source-sha256: 2d897ffca786983b40b756af2aa3f289af0c00ff558f6788fcdfc4dbe87a2c55 +import PlainLayout from '../../../layouts/PlainLayout.astro'; +--- + + +

    ← Docs index

    + +

    Managed Fleet

    + +

    Tailscale coordinates key rotation, node registration, and user authentication for devices. When a device is added to a tailnet, Tailscale generates a unique identity for it and handles key rotation.

    + +

    Device inventory

    +

    The machines page of the admin console provides a central inventory of all devices in a tailnet. For each device, it shows:

    +
      +
    • The device name and its owner
    • +
    • The Tailscale IP address
    • +
    • The OS version
    • +
    • The Tailscale client version
    • +
    • When the device was last seen on the network
    • +
    +

    This page can also be used to perform actions on devices, such as disabling key expiry or deleting a device from a tailnet.

    + +

    Tagging devices

    +

    Tags can be used to apply policies to groups of devices. For example, a tag called `prod` could be created for production servers. A policy could then be created that only allows users with the `prod` tag to access those servers.

    + +

    Pre-authorizing devices

    +

    Auth keys can be used to pre-authorize devices to join a tailnet. This is useful for automating the process of adding new devices, such as when provisioning new servers.

    + +

    Related

    + + +
    diff --git a/src/pages/plain/docs/managed-harnesses.astro b/src/pages/plain/docs/managed-harnesses.astro new file mode 100644 index 00000000..a579c9b2 --- /dev/null +++ b/src/pages/plain/docs/managed-harnesses.astro @@ -0,0 +1,50 @@ +--- +// Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run. +// plain-source: src/pages/docs/managed-harnesses.astro +// plain-source-sha256: e0336c8c55f5e17dc8cca1e19ff98c1514de5ddff928e82197f86df9b34fcab0 +import PlainLayout from '../../../layouts/PlainLayout.astro'; +--- + + +

    ← Docs index

    + +

    Managed Harnesses

    + +

    Managed Harnesses define a set of environment variables and volumes that are automatically applied to a local development environment when connecting to a cluster. This feature is part of the Telepresence Pro plan.

    + +

    How it works

    +

    When connecting to a cluster with a Managed Harness, Telepresence automatically mounts specified volumes to the local machine and sets specified environment variables in the local shell. This provides a consistent development environment across a team without requiring manual configuration on each developer's machine.

    + +

    Creating a Managed Harness

    +

    To create a Managed Harness, create a `harness.yaml` file in the project root. This file defines the environment variables and volumes to be applied.

    +
    env:
    +  - name: DATABASE_URL
    +    value: postgresql://user:password@localhost:5432/mydb
    +  - name: REDIS_URL
    +    value: redis://localhost:6379
    +volumes:
    +  - name: my-volume
    +    mountPath: /app/data
    +

    Apply the file to the cluster:

    +
    telepresence harness apply harness.yaml
    + +

    Using a Managed Harness

    +

    A Managed Harness is automatically used by any Telepresence client connecting to a cluster where the harness has been applied. No client-side configuration is needed.

    +

    The connection output shows the harness being applied:

    +
    telepresence connect
    +...
    +Applying managed harness...
    +  - Setting environment variable DATABASE_URL
    +  - Setting environment variable REDIS_URL
    +  - Mounting volume my-volume
    +...
    +Connected to cluster
    +

    Verify the environment variables and volumes in the local shell.

    + +

    Related

    + + +
    diff --git a/src/pages/plain/docs/managed-policies.astro b/src/pages/plain/docs/managed-policies.astro new file mode 100644 index 00000000..236a6566 --- /dev/null +++ b/src/pages/plain/docs/managed-policies.astro @@ -0,0 +1,23 @@ +--- +// Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run. +// plain-source: src/pages/docs/managed-policies.astro +// plain-source-sha256: b7645c5c6c5e480e6cc4b9c6dba5dcb91683473b62b2238bc73f61f7d596ece1 +import PlainLayout from '../../../layouts/PlainLayout.astro'; +--- + + +

    ← Docs index

    + +

    managed-policies

    + +

    + + + +

    Related

    + + +
    diff --git a/src/pages/plain/docs/managed-readiness.astro b/src/pages/plain/docs/managed-readiness.astro new file mode 100644 index 00000000..3506b925 --- /dev/null +++ b/src/pages/plain/docs/managed-readiness.astro @@ -0,0 +1,59 @@ +--- +// Auto-generated by scripts/regen-plain.mjs. Edit the marketing source and re-run. +// plain-source: src/pages/docs/managed-readiness.astro +// plain-source-sha256: 1f6e87e861c2cf0595649390a556fc0256d64c56e1a09f4684a112822a1765e1 +import PlainLayout from '../../../layouts/PlainLayout.astro'; +--- + + +

    ← Docs index

    + +

    Managed Teleport Readiness

    + +

    Before connecting the first host to Teleport, the cluster must be ready to accept connections. This guide explains how to ensure the cluster is properly configured.

    + +

    Prerequisites

    +

    The following are required before beginning:

    +
      +
    • A running Teleport cluster.
    • +
    • Administrative privileges on the Teleport cluster.
    • +
    + +

    Check Cluster Health

    +

    Check the health of the Teleport cluster by running the tctl status command on the Teleport Auth Service node.

    +
    tctl status
    +Cluster  teleport.example.com
    +Version  v15.1.2
    +CA pin   sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef123456
    +

    The output shows the cluster name, Teleport version, and CA pin. Any errors must be resolved before proceeding.

    + +

    Configure Public Addr

    +

    Agents require a publicly accessible cluster address to connect. This is configured in the teleport.yaml file on Teleport Proxy Service nodes.

    +
    proxy_service:
    +  enabled: "yes"
    +  public_addr: "teleport.example.com:443"
    +

    The public_addr must be set to the address nodes use to connect to the Teleport Proxy Service. This is often a load balancer or a DNS record pointing to the proxy nodes.

    + +

    Next Steps

    +

    After the cluster is ready, infrastructure can be connected. Guides are available for adding:

    +
      +
    • SSH Servers
    • +
    • Kubernetes Clusters
    • +
    • Web Applications
    • +
    • Databases
    • +
    • Windows Desktops
    • +
    + +

    Related

    + + +