Files
acdl/docs/ONBOARDING.md
T
Jon Chery e7866fda84
Nova Slides Render / render (push) Failing after 1m4s
docs(P1): strategic docs — thesis rename + NORTH_STAR objectives + RACI restructure
AUTONOMY_THESIS.md (git mv from NO_HUMANS_THESIS.md): reframe from
'removing humans' to 'autonomy in operations, human at stage gates'.
Drop D-### citations + internal file paths; keep anti-claims, reworded.
Anti-claim #1 now: 'decisions are NOT made by an LLM — deterministic
scripts calculate a score; the platform functions without AI'.

NORTH_STAR.md:
- Vision: 'invisible' → 'visible' (operations become visible — recurring
  theme); polish for technical audience (security, remediation velocity,
  reliability, lead time).
- Objective #2: 'provable trust in AI decisions' → 'provable trust in
  automated decisions' (deterministic scripts calculate a score;
  platform functions without AI).
- Objective #3: four CTO-grade metrics (Lead Time PR→Prod, Infra Vuln
  Count trend, MTTR, Cloud Spend Reduction) → all flow into PowerBI.
- Objective #4: 'default substrate for agentic consumption' → integrate
  with externally owned PDLC/SDLC/Agentic/Citizen Developer platforms
  regardless of source; Nova provides skills + MCP endpoints; all prod
  intents go through the same controls + quality gates.
- Anti-goals: drop #1 (hyperscaler competitor), #4 (legacy untagged),
  #5 (sold to operators). Add: 'not an upstream development platform',
  'not a replacement for the PDLC'. Reword #3 (no 'removes humans').

docs/raci.md: 3 roles → 4 roles. Add Quality Engineering column. Rename
Release Management → SRE. Split release attestation into Quality
attestation (QA) + Production readiness (SRE). Platform no longer holds
A for attestation — reassigned to QE/SRE.

docs/scope.md: add integration framing (skills + MCP endpoints, all
sources go through same controls).

Render scripts: default deck name → nova-autonomous-cloud-delivery.
ONBOARDING + terraform/onboarding: 'no-humans' → 'autonomous'.

---ci---
project: acdl
phase: 1
milestone: v1.21
status: execute
phase_role: execution
---/ci---
2026-08-11 13:55:53 +00:00

3.2 KiB

Nova Onboarding — Autonomous Request Path (v1.16, REQ-182..184)

The v1.16 milestone implements the request path of the autonomous onboarding flow (D-113). A consumer can submit an onboarding request without contacting the platform team; the platform generates an environment binding + (in a future milestone) provisions the AWS resources.

The 3-step request path

Step 1 — Submit an onboarding request (P18, REQ-182)

A consumer submits an onboarding request to the Nova platform Lambda:

# Via the Lambda Function URL (IAM auth):
curl -X POST "$NOVA_LAMBDA_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "onboard_consumer",
    "consumerRepo": "acdl/my-app",
    "requestedEnvironment": "dev",
    "ownerId": "team-x",
    "billingTag": "cost-center-x"
  }'

The Lambda validates the payload against schemas/onboarding.schema.json, then writes a pending row to the nova-contracts DynamoDB table (D-119). No AWS resources are created by this action (D-113).

Step 2 — Generate an environment binding (P19, REQ-183)

The platform (or the consumer locally) generates an environment binding file from the request:

python3 core/onboarding.py --request '{
  "consumerRepo": "acdl/my-app",
  "requestedEnvironment": "qa",
  "ownerId": "team-x",
  "billingTag": "cost-center-x"
}' --out core/environments/qa.json

This produces a <env>.json from the dev.json template, filling in the ownerId + billingTag + a description. The account_id is a placeholder (000000000000) for the platform team to fill with the real account. The generated file validates against schemas/environment.schema.json.

Step 3 — Cross-account role + ABAC tag grant (P20, REQ-184)

The platform authors the consumer deploy-role + nova:owner ABAC tag grant via Terraform:

cd terraform/onboarding
terraform init -backend=false
terraform validate
NOVA_AWS_ACCOUNT_ID=123456789012 terraform plan \
  -var consumer_repo=acdl/my-app \
  -var owner_id=team-x

Offline-proven only (D-114): terraform validate + terraform plan pass; no live apply in v1.16. The live apply (creating the real cross-account role + OIDC trust) is deferred to a future feature milestone (D-113).

What is NOT automated (deferred)

  • Real AWS account/network/state provisioning — the request path generates a binding file with a placeholder account_id; the actual AWS account creation + VPC + state backend is a future feature (D-113).
  • Live cross-account role apply — the Terraform is offline-proven only (D-114); live apply is deferred.
  • OIDC trust policy — the onboarding Terraform uses a placeholder OIDC provider; real OIDC federation is blocked on upstream forge OIDC support (carries forward from v1.1).

See also