Skip to content

feat(agents-api): add safe standalone local init #617

Description

@sam2tom

Context

Running the standalone Agents API locally currently requires operators to hand-create a caller bearer and six-field keys.json binding before Web or another client can authenticate. That lifecycle belongs to Parsar, not to each UI repository.

Observable outcome: Parsar provides a supported, secure, idempotent initialization command for a standalone local Agents API deployment.

Acceptance criteria

  • Add an explicit standalone local-init command owned by services/agents-api.
  • Create a canonical nonzero tenant ID, caller principal binding, plaintext caller token file, and digest-only keys.json entry using cryptographically secure randomness.
  • Use stable documented default paths compatible with Agents Core Web's server-side proxy convention.
  • Refuse to overwrite or silently reuse an existing token, binding, tenant, or device profile unless the operator selects an explicit reviewed mode.
  • Create private directories/files with restrictive permissions and verify them after writing.
  • Never print the plaintext caller token, daemon credential, authorization header, or provider credential.
  • Keep product users/organizations separate: organization/project/subject values are execution-service identities supplied or defaulted explicitly.
  • Emit redacted human-readable status and optional machine-readable non-secret metadata for downstream tooling.
  • Provide tests for fresh init, repeat invocation, partial state, invalid IDs, permission failure, digest correctness, redaction, and crash-safe writes.
  • Document rotation and cleanup semantics without deleting data by default.

Validation

  • Run focused Agents API CLI/config tests and the repository's standard Agents API checks.
  • Prove no generated secret appears in stdout, stderr, argv, snapshots, or Git fixtures.
  • Validate compatibility with the documented Agents Core Web token-file contract.

Non-goals

  • Do not add browser or product organization logic.
  • Do not provision model/provider credentials.
  • Do not start a paid Turn.
  • Do not make the root Parsar product stack a dependency of the standalone Agents API.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions