# `2.9.0` Secrets

Status: Done

## Goal

Add explicit secrets so workspaces can handle private dependencies,
authenticated startup, and secret-aware shell or exec flows without weakening
the fail-closed sandbox model.

## Public API Changes

- `workspace create` gains secrets
- `workspace exec`, `workspace shell open`, and `workspace service start` gain
  per-call secret-to-env mapping
- SDK and MCP mirror the same model

## Implementation Boundaries

- Support literal secrets and host-file-backed secrets.
- Materialize secrets outside `/workspace`.
- Secret values never appear in status, logs, diffs, or exports.
- Reset recreates secrets from persisted secret material, not from the original
  host source path.

## Non-Goals

- no post-create secret editing
- no secret listing beyond safe metadata
- no mount-based secret transport

## Acceptance Scenarios

- create a workspace with a literal secret and a file-backed secret
- run exec and shell flows with mapped env vars
- start a service that depends on a secret-backed readiness path
- confirm redaction in command, shell, and service output

## Required Repo Updates

- docs for private dependency workflows
- explicit redaction tests
- real Firecracker smoke for secret-backed exec or service start
