CarryFrameControlled pilot

Authenticated access to durable state

Evaluation service. No uptime SLA or disaster-recovery guarantee. No demonstrated organisational advantage. Use synthetic data, not irreplaceable or sensitive production data.

1. Establish identity, then authority

The service at https://carryframe.com/api/orchestration requires authenticated operator identity on protected routes. A tenant API key or client-supplied actor is not an authentication substitute. Humans use the registered ZITADEL OpenID Connect sign-in in your organisation. Sign-in alone does not create tenant membership: a principal must be explicitly enrolled and authorised. This evaluation is not unrestricted self-service signup.

Dedicated machine services use the reviewed ZITADEL client-credentials token-pair profile: an access token plus its signed companion in X-CarryFrame-Machine-ID-Token. Each service has a distinct enrolled subject/client binding and restricted duties. This provider-specific profile is not an RFC 9068 JWT access token.

Tokens are checked against the configured issuer, audience, signature, expiry and active enrollment. Runtime permissions remain separate from identity. Keep credentials in a secret manager, never URLs, source code, logs or support messages. Local portal sign-out does not revoke the provider session or an already copied token.

2. Call a protected route

An enrolled human sends the dedicated-audience OIDC ID token as Authorization: Bearer <token> and the authorised tenant UUID as X-CarryFrame-Tenant. The tenant header selects a boundary, not authority. The operation also requires the corresponding scope.

const response = await fetch(
  "https://carryframe.com/api/orchestration/v1/orchestrations/" + orchestrationId,
  { headers: { Authorization: "Bearer " + token,
      "X-CarryFrame-Tenant": tenantId }, redirect: "error" }
);
// Check response.status before using returned state.
// Never log token or the Authorization header.

Mutations require a stable Idempotency-Key; revision-changing writes also require expected_revision. A 409 requires reconciliation. A lost response is not proof of rejection: replay only the exact request with its original key. Never blindly retry a possibly executed external effect.

3. Errors and public exceptions

Requests reaching CarryFrame with missing or invalid authentication return JSON 401. A verified identity without required authority returns 403. Unknown or inaccessible tenant objects may return 404. Rate/quota limits return 429; temporary unavailability or a controlled admission pause can return 503.

Hosting protections are separate: Vercel may reject a request before CarryFrame receives it, including a plain-text 403 with no CarryFrame request ID. That is not evidence of an attributed application action. Retain UTC time, route, status and request ID for support, never credentials.

Static documentation, the login landing page, public identity configuration and deliberately limited health remain public. Stripe ingress retains its distinct verified-signature path and dedicated service identity, not a caller-selected actor. Automated checkout and subscriptions remain disabled; a separately signed founding pilot may be invoiced by SmartTeddy Inc. through a guarded one-off operator process.

Capabilities and limits

Persistent roles, scoped records, obligations, inbox messages and verified exports are available through the API. Model contributions are not automatically accepted facts. A role’s untransferred obligations constrain closure and merge. These are governance mechanisms, not a promise of correct model answers. Review the current security and data facts before proposing a pilot.

Only activity passing through an enabled CarryFrame recording path is visible. The public agentgateway path is qualified for one reference echo tool, with durable authorised intent, observed outcome or explicit uncertainty. It is not a transparent endpoint for arbitrary MCP clients or proof of exactly-once external effects. Calls made directly to models, tools or other systems outside that path are not recorded. The offline verification procedure explains signed-export scope and limitations; integrity verification cannot prove the absence of unobserved activity. These capabilities are not a guarantee of compliance.

In-app billing remains test-only with checkout disabled. The separate $100 evidence check and $500 founding pilot each require qualification, a signed agreement and the applicable one-off invoice; no subscription or automatic renewal is offered. The evidence check does not consume a first-five pilot slot. Usage ceilings depend on the tenant's current grant and configuration; no automatic overages or production SLA is offered. Existing synthetic Stripe test prices are not either commercial offer.

First recorded workflow

Follow the enrolled-identity integration guide for the tested synthetic worksheet, human review scopes, safe failure handling and offline verification. The current CarryFrame API reference describes core data-plane routes, tenant usage, signed export and the qualified tool path. No unrestricted signup or admin access is implied.

Legacy integration reference

The unchanged https://persistent-orchestration-api-stagin.vercel.app/api/orchestration endpoint retains its separately scoped API-key contract for internal integrations. Its legacy OpenAPI reference and legacy key-based quickstart do not authenticate to the new CarryFrame domain. The example defaults to that legacy endpoint and makes no model calls. Do not send credentials between the two identity systems.

Recovery and support

Read the current revision and ordered events to continue from another process. This does not establish infrastructure-disaster recovery. Previous bounded multi-role reactivation cycles took 64.650, 64.295 and 58.157 seconds; do not assume a 60-second guarantee.

Report service problems to hello@carryframe.com with UTC time, route, HTTP status and request ID only. Support is best effort, not 24/7 coverage. Export your data before relying on any evaluation service.

CarryFrame is operated by SmartTeddy Inc., 2261 Market Street, STE 88876, San Francisco, CA 94114, USA.