{"schemaVersion":"developer.reits.tech/runner-factory-worker-provider/v1","status":"ADAPTER_IMPLEMENTED_NOT_CONFIGURED","observedAt":"2026-07-20T17:55:00Z","truth":{"launchTemplateCreated":false,"ciNetworkCreated":false,"bootstrapProfileCreated":false,"runtimeDriverConfigured":false,"readinessGateSatisfied":false,"liveWorkers":0,"runtimeJobs":0,"ec2CallsExecuted":0,"paidResourcesCreated":false,"deploymentPermitted":false},"implementation":{"adapter":"ops/runner-factory/worker-provider.mjs","testDriver":"ops/runner-factory/memory-ec2-driver.mjs","runtimeDriver":"NOT_CONFIGURED","region":"ap-southeast-2","launchTemplateSelection":"EXACT_ID_AND_NUMERIC_VERSION","capacityPerRequest":1,"clientToken":"SHA256_JOB_ATTEMPT_KEY","publicIpv4":false,"ipv6":false,"bootstrapImds":"IMDSV2_REQUIRED_HOP_LIMIT_1","jobImds":"DISABLED","maxJobs":1,"rootVolume":"ENCRYPTED_GP3_DELETE_ON_TERMINATION","proofTransport":"OPAQUE_CAPABILITY_AND_SECRET_FREE_FACTS"},"operations":[{"id":"launch","target":"EC2 RunInstances + DescribeInstances","guard":"one private instance + exact immutable template + job-bound tags + attached encrypted disposable root","result":"BOOTSTRAP_RUNNING"},{"id":"closeCloudBoundary","target":"DescribeIamInstanceProfileAssociations + DisassociateIamInstanceProfile + ModifyInstanceMetadataOptions + RebootInstances + DescribeInstances","guard":"profile absent and IMDS disabled after reboot","result":"CLOUD_BOUNDARY_CLOSED"},{"id":"runJob","target":"injected one-job worker agent","guard":"exact admitted job + boundary closed + jobsCompleted zero","result":"JOB_FINISHED"},{"id":"terminate","target":"TerminateInstances + DescribeInstances + DescribeVolumes","guard":"exact instance terminated + exact root volume absent","result":"TERMINATED"}],"stateMachine":[{"from":"UNALLOCATED","action":"launch","to":"BOOTSTRAP_RUNNING","guard":"launch and attestation match"},{"from":"BOOTSTRAP_RUNNING","action":"closeCloudBoundary","to":"CLOUD_BOUNDARY_CLOSED","guard":"profile absent + IMDS disabled + reboot verified"},{"from":"CLOUD_BOUNDARY_CLOSED","action":"runJob","to":"JOB_RUNNING","guard":"exact job + zero prior jobs"},{"from":"JOB_RUNNING","action":"agent result","to":"JOB_FINISHED","guard":"exact instance/job + one completion"},{"from":"BOOTSTRAP_RUNNING|CLOUD_BOUNDARY_CLOSED|JOB_FINISHED|FAILED_NEEDS_TERMINATION","action":"terminate","to":"TERMINATING","guard":"exact instance ID"},{"from":"TERMINATING","action":"retirement proof","to":"TERMINATED","guard":"instance terminated + root volume absent"},{"from":"ANY_MUTATING","action":"driver/proof failure","to":"FAILED_NEEDS_TERMINATION","guard":"no later admission"},{"from":"FAILED_NEEDS_TERMINATION","action":"compensate","to":"TERMINATING","guard":"termination remains retryable"},{"from":"TERMINATED","action":"terminate","to":"TERMINATED","guard":"return idempotent terminal proof"}],"invariants":["launch uses an exact launch-template ID and numeric immutable version","ClientToken deterministically binds one admitted job attempt","each request asks for exactly one on-demand private worker","the worker receives no public IPv4, IPv6 or production route","bootstrap IMDS requires v2 and a hop limit of one","the bootstrap profile is exact and only present before admission","profile detachment and IMDS disablement are re-read after reboot","untrusted work cannot start before the cloud boundary is closed","the job identity must exactly match the launch plan","a worker completes at most one job and replay is denied","the root gp3 volume is encrypted and delete-on-termination","retirement requires both instance termination and volume absence","failed boundary, job or retirement proofs remain non-admissible","public proof excludes credentials, user data and mutable capabilities"],"verification":{"status":"PASS_TEST_DRIVER_ONLY","fixtures":34,"allowedTransitions":8,"deniedTransitions":26,"ec2OperationsModeled":8,"jobAgentOperationsModeled":1,"compensationCases":1,"idempotentTerminalCases":1,"secretExposureCount":0,"externalCallsExecuted":0},"failureClasses":[{"code":"RF_WORKER_CONFIG|DRIVER|SCOPE|HANDLE","phase":"PRE_MUTATION","action":"deny without EC2 call"},{"code":"RF_WORKER_LAUNCH_*","phase":"LAUNCH","action":"fail reservation and reconcile launch request ID"},{"code":"RF_WORKER_BOUNDARY_*","phase":"BOUNDARY","action":"keep offline and terminate"},{"code":"RF_WORKER_JOB_*","phase":"EXECUTION","action":"deny reuse and terminate"},{"code":"RF_WORKER_TERMINATION_*","phase":"RETIREMENT","action":"freeze capacity and page owner"}],"productionPrerequisites":["approved immutable launch template, AMI digest and numeric template version","dedicated private CI subnet, zero-ingress security group and verified no-production routes","least-privilege bootstrap instance profile with detach permission owned by the controller","AWS SDK runtime driver with bounded waiters, retry budgets and request-ID journaling","worker-agent authenticated channel that cannot mint cloud credentials","instance and root-volume orphan reconciliation alarms with a named on-call owner","security, runtime and cost-owner approval"],"officialReferences":{"runInstances":"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html","describeInstances":"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html","disassociateProfile":"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html","modifyMetadata":"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataOptions.html","terminateInstances":"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html"},"fixtureRegistry":{"schemaVersion":"developer.reits.tech/runner-factory-worker-provider-fixtures/v1","fixedTime":"2026-07-20T17:20:00.000Z","cases":[{"id":"RFWP-01","case":"immutable-launch-template-request","expected":"ALLOW","reason":"REQUEST_PINNED"},{"id":"RFWP-02","case":"launch-one-private-bootstrap-worker","expected":"ALLOW","reason":"BOOTSTRAP_RUNNING"},{"id":"RFWP-03","case":"inspect-secret-free-worker-proof","expected":"ALLOW","reason":"PROOF_REDACTED"},{"id":"RFWP-04","case":"detach-profile-disable-imds-reboot-verify","expected":"ALLOW","reason":"CLOUD_BOUNDARY_CLOSED"},{"id":"RFWP-05","case":"run-exactly-one-admitted-job","expected":"ALLOW","reason":"JOB_FINISHED"},{"id":"RFWP-06","case":"terminate-and-prove-root-volume-deleted","expected":"ALLOW","reason":"TERMINATED"},{"id":"RFWP-07","case":"terminate-during-bootstrap-compensation","expected":"ALLOW","reason":"COMPENSATED"},{"id":"RFWP-08","case":"idempotent-terminal-proof","expected":"ALLOW","reason":"TERMINATED_IDEMPOTENT"},{"id":"RFWP-09","case":"mutable-launch-template-version","expected":"DENY","reason":"RF_WORKER_CONFIG"},{"id":"RFWP-10","case":"incomplete-ec2-driver","expected":"DENY","reason":"RF_WORKER_DRIVER"},{"id":"RFWP-11","case":"two-job-worker-plan","expected":"DENY","reason":"RF_WORKER_SCOPE"},{"id":"RFWP-12","case":"worker-region-mismatch","expected":"DENY","reason":"RF_WORKER_SCOPE"},{"id":"RFWP-13","case":"run-instances-outage","expected":"DENY","reason":"RF_WORKER_LAUNCH_UNAVAILABLE"},{"id":"RFWP-14","case":"multiple-instances-in-launch-response","expected":"DENY","reason":"RF_WORKER_LAUNCH_RESPONSE"},{"id":"RFWP-15","case":"public-address-in-launch-response","expected":"DENY","reason":"RF_WORKER_LAUNCH_RESPONSE"},{"id":"RFWP-16","case":"imds-v1-enabled-in-launch-response","expected":"DENY","reason":"RF_WORKER_LAUNCH_RESPONSE"},{"id":"RFWP-17","case":"wrong-bootstrap-profile","expected":"DENY","reason":"RF_WORKER_LAUNCH_RESPONSE"},{"id":"RFWP-18","case":"job-binding-tag-mismatch","expected":"DENY","reason":"RF_WORKER_LAUNCH_RESPONSE"},{"id":"RFWP-19","case":"root-volume-not-delete-on-termination","expected":"DENY","reason":"RF_WORKER_LAUNCH_RESPONSE"},{"id":"RFWP-20","case":"pre-boundary-describe-outage","expected":"DENY","reason":"RF_WORKER_BOUNDARY_UNAVAILABLE"},{"id":"RFWP-21","case":"profile-association-mismatch","expected":"DENY","reason":"RF_WORKER_BOUNDARY_PROOF"},{"id":"RFWP-22","case":"profile-detach-response-mismatch","expected":"DENY","reason":"RF_WORKER_BOUNDARY_PROOF"},{"id":"RFWP-23","case":"imds-disable-response-mismatch","expected":"DENY","reason":"RF_WORKER_BOUNDARY_PROOF"},{"id":"RFWP-24","case":"profile-retained-after-reboot","expected":"DENY","reason":"RF_WORKER_BOUNDARY_PROOF"},{"id":"RFWP-25","case":"imds-retained-after-reboot","expected":"DENY","reason":"RF_WORKER_BOUNDARY_PROOF"},{"id":"RFWP-26","case":"job-before-cloud-boundary","expected":"DENY","reason":"RF_WORKER_STATE"},{"id":"RFWP-27","case":"wrong-job-identity","expected":"DENY","reason":"RF_WORKER_JOB_SCOPE"},{"id":"RFWP-28","case":"job-agent-result-mismatch","expected":"DENY","reason":"RF_WORKER_JOB_RESPONSE"},{"id":"RFWP-29","case":"second-job-replay","expected":"DENY","reason":"RF_WORKER_JOB_REPLAY"},{"id":"RFWP-30","case":"terminate-instances-outage","expected":"DENY","reason":"RF_WORKER_TERMINATION_UNAVAILABLE"},{"id":"RFWP-31","case":"termination-response-instance-mismatch","expected":"DENY","reason":"RF_WORKER_TERMINATION_PROOF"},{"id":"RFWP-32","case":"instance-not-terminal-after-termination","expected":"DENY","reason":"RF_WORKER_TERMINATION_PROOF"},{"id":"RFWP-33","case":"root-volume-still-exists","expected":"DENY","reason":"RF_WORKER_TERMINATION_PROOF"},{"id":"RFWP-34","case":"forged-worker-capability","expected":"DENY","reason":"RF_WORKER_HANDLE"}]},"discovery":{"lifecycle":"/api/runner-factory","controller":"/api/runner-factory/controller","workbench":"/release-foundation#ec2-worker-provider","schema":"/schemas/runner-factory-worker-provider.v1.schema.json"}}