Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,17 @@ Late or conditional v1 work:

Blocked candidates must remain unimplemented until the API and a tagged SDK expose the required durable contract. Provider code must not guess missing semantics, patch generated SDK code, or add a fallback HTTP client to bypass the durable client module.

`kernel_deployment` remains core v1 scope but is currently blocked until a
tagged SDK exposes source provenance, the API supports deterministic durable
readback, and the write-only environment/token plus metadata-only import design
is accepted. Its current status may be exposed only as computed inspection
metadata: it cannot be configured, drive a diff, or be populated from an event
stream. The `kernel_deployment` data source is limited to fields returned by a
durable deployment GET; app name, version, and actions remain the responsibility
of the exact-lookup `kernel_app` data source until deployment reads expose them
directly. The resource omits `force` until the API implements and tests the
documented overwrite behavior. `kernel_app` remains lookup-only.

Terraform schema and model code generation remains deferred. The current tool produced valid output but did not reduce code or review complexity, and broad OpenAPI-driven generation would further weaken the durable allowlist.

The evaluation evidence and reconsideration criteria are defined in [Terraform Framework Code Generation Decision](codegen.md).
Expand Down Expand Up @@ -285,7 +296,13 @@ Data sources must not create, mutate, acquire, release, invoke, or recover Kerne

Every resource should import by canonical ID where the API can reconstruct durable state. Project-scoped resources may also accept a documented project-qualified form when needed to resolve a non-default project.

Read after import must flatten durable API state into Terraform state without introducing runtime fields. If the API cannot return create-only configuration or sensitive values, the resource must document metadata-only import or remain deferred. The provider returns a clear diagnostic instead of guessing.
Read after import must flatten durable API state into Terraform state without
introducing unmanaged runtime fields. Explicitly approved computed inspection
metadata, such as deployment status, may be populated from a durable GET when
it cannot be configured or drive diffs; event and log streams are never import
read paths. If the API cannot return create-only configuration or sensitive
values, the resource must document metadata-only import or remain deferred. The
provider returns a clear diagnostic instead of guessing.

## Testing Strategy

Expand Down
8 changes: 6 additions & 2 deletions docs/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,15 @@ Do not replace or mutate assets for a published version. If an asset, checksum,

- Provider `api_key` remains sensitive.
- `internal/kernelclient` exposes durable methods only; no acquire, release, flush, force-release, screenshots, logs, live view, or app invocation.
- Every resource state contains durable desired configuration only.
- Every resource state contains durable desired configuration plus only
explicitly approved, computed inspection metadata that cannot be configured
or drive diffs; no resource state is populated from event or log streams.
- Every data source is lookup-only and side-effect free.
- Project lifecycle uses organization-scoped endpoints and documents the permissions required for create, archive, and delete; if project limits are included later, their permissions receive a separate review.
- If API key management is included, reads expose masked metadata only; plaintext-once values are sensitive, import cannot recover plaintext, and rotation/self-use semantics have explicit safety review.
- Proxy credentials, deployment environment variables, source tokens, and other secret inputs are sensitive and preserve configured state when API reads return masked values.
- Proxy credentials, deployment environment variables, source tokens, and
other secret inputs are sensitive write-only values that never enter state;
only explicit replacement keepers and readable masked metadata persist.
- Browser pool read state does not include runtime counters, standby state, leased-browser state, runtime URLs, screenshots, logs, or live-view fields.
- Delete uses `force=false`; Terraform must not terminate leased browsers as cleanup.
- Each resource imports by canonical ID where the API can reconstruct durable state; metadata-only or unsupported imports are documented rather than guessed.
Expand Down