Seed launcher repo scaffold and integration contracts
This commit is contained in:
commit
cd831f4986
20
README.md
Normal file
20
README.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# EDUT Launcher
|
||||||
|
|
||||||
|
Free control-plane application for EDUT onboarding and entitlement-aware installs.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
1. Local wallet create/import/recovery UX.
|
||||||
|
2. Device readiness checks.
|
||||||
|
3. Membership status and governance install controls.
|
||||||
|
4. Signed package download and verification orchestrator.
|
||||||
|
5. Member app-channel inbox.
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
|
||||||
|
1. Governance runtime internals.
|
||||||
|
2. Paid module execution engines.
|
||||||
|
|
||||||
|
## Boundary
|
||||||
|
|
||||||
|
Launcher never contains private kernel internals. It verifies and installs signed paid runtimes only after entitlement checks pass.
|
||||||
22
docs/integration-contract.md
Normal file
22
docs/integration-contract.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Launcher Integration Contract
|
||||||
|
|
||||||
|
Launcher integrates with EDUT web/backend contracts as follows:
|
||||||
|
|
||||||
|
## Required APIs
|
||||||
|
|
||||||
|
1. `POST /secret/wallet/intent`
|
||||||
|
2. `POST /secret/wallet/verify`
|
||||||
|
3. `POST /secret/membership/quote`
|
||||||
|
4. `POST /secret/membership/confirm`
|
||||||
|
5. `GET /secret/membership/status`
|
||||||
|
6. `POST /governance/install/token`
|
||||||
|
7. `POST /governance/install/confirm`
|
||||||
|
8. `GET /governance/install/status`
|
||||||
|
9. `GET /member/channel/events`
|
||||||
|
|
||||||
|
## Deterministic Requirements
|
||||||
|
|
||||||
|
1. No runtime activation without entitlement proof.
|
||||||
|
2. All install packages verified by hash and signature.
|
||||||
|
3. Membership and entitlement unknown state fails closed.
|
||||||
|
4. Event inbox polling remains canonical even if push unavailable.
|
||||||
21
docs/package-verification-spec.md
Normal file
21
docs/package-verification-spec.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Package Verification Specification (Launcher)
|
||||||
|
|
||||||
|
## Objective
|
||||||
|
|
||||||
|
Ensure only signed and policy-matching governance packages can install.
|
||||||
|
|
||||||
|
## Verification Steps
|
||||||
|
|
||||||
|
1. Fetch install token and package metadata.
|
||||||
|
2. Download package from signed URL.
|
||||||
|
3. Verify package hash.
|
||||||
|
4. Verify package signature against trusted signer key set.
|
||||||
|
5. Verify policy hash against install token payload.
|
||||||
|
6. Persist install evidence and call install confirm endpoint.
|
||||||
|
|
||||||
|
## Fail-Closed Rules
|
||||||
|
|
||||||
|
1. Hash mismatch blocks install.
|
||||||
|
2. Signature mismatch blocks install.
|
||||||
|
3. Policy mismatch blocks install.
|
||||||
|
4. Expired install token blocks install.
|
||||||
14
docs/release-gate.md
Normal file
14
docs/release-gate.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Launcher Release Gate
|
||||||
|
|
||||||
|
## Required
|
||||||
|
|
||||||
|
1. Wallet bootstrap flow passes local security checks.
|
||||||
|
2. Package verification pass/fail tests pass.
|
||||||
|
3. Governance install path fails closed on invalid evidence.
|
||||||
|
4. Marketplace and status APIs are called with app-session auth.
|
||||||
|
|
||||||
|
## Blockers
|
||||||
|
|
||||||
|
1. Any path that installs unsigned package.
|
||||||
|
2. Any path that leaks private key material.
|
||||||
|
3. Any path that bypasses entitlement checks for governance activation.
|
||||||
19
docs/wallet-bootstrap-flow.md
Normal file
19
docs/wallet-bootstrap-flow.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Wallet Bootstrap Flow (Launcher)
|
||||||
|
|
||||||
|
## Objective
|
||||||
|
|
||||||
|
Create or import an ownership wallet locally before paid actions.
|
||||||
|
|
||||||
|
## Flow
|
||||||
|
|
||||||
|
1. Open launcher.
|
||||||
|
2. Choose create wallet or import wallet.
|
||||||
|
3. Keys are generated/stored locally (device trust store/secure hardware where available).
|
||||||
|
4. Recovery options are shown and confirmed by user.
|
||||||
|
5. Wallet address becomes ownership identity for memberships and licenses.
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
1. Launcher never exports private key to EDUT backend.
|
||||||
|
2. Membership/license ownership binds to ownership wallet.
|
||||||
|
3. Payment wallet may differ at quote/checkout.
|
||||||
Loading…
Reference in New Issue
Block a user