75 lines
2.6 KiB
Markdown
75 lines
2.6 KiB
Markdown
# Depo Package Manifest — Spec v1.0 (DRAFT)
|
|
|
|
One tag = one releasable business. The manifest is the contract between the
|
|
authoring machine and any target that pulls the package.
|
|
|
|
## File
|
|
|
|
`manifest.json` at package root.
|
|
|
|
## Schema
|
|
|
|
```json
|
|
{
|
|
"schema_version": "1.0",
|
|
"package_id": "hitridge-business-o1",
|
|
"display_name": "O1 — Consignment Refurbished Electronics",
|
|
"version": "0.1.0",
|
|
"license": "proprietary",
|
|
"requires": {
|
|
"odoo": ">=18.0",
|
|
"agent_runtime": ">=1.0"
|
|
},
|
|
"layers": {
|
|
"odoo_modules": ["aura_business_core", "hitridge_venture_o1"],
|
|
"agents": ["o1-sellers-recruiter", "o1-test-operator", "o1-closer", "o1-compliance"],
|
|
"docs": ["docs/playbook.md", "docs/agreement-template.odt", "docs/test-checklist.md"],
|
|
"config": ["config/channels.json", "config/pricing-rules.json"]
|
|
},
|
|
"install": {
|
|
"order": ["odoo_modules", "config", "agents", "docs"],
|
|
"verify": [
|
|
"all odoo_modules installed",
|
|
"all agents registered in runtime",
|
|
"venture menu visible",
|
|
"no secrets in package (secrets_scan)"
|
|
]
|
|
},
|
|
"rollback": {
|
|
"strategy": "install previous tag; reverse install order"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Rules
|
|
|
|
1. **Versioning** — semver. Every change to any layer bumps the version. A tag
|
|
in the depot repo = the release.
|
|
2. **Signing** — manifest is hashed (SHA-256) and signed (ed25519). Targets
|
|
verify the signature before anything is applied. No signature = refuse.
|
|
3. **Idempotency** — installing the same version twice is a no-op; upgrading
|
|
follows the module version-bump path.
|
|
4. **Never ships in a package**:
|
|
- env secrets / credentials / API keys (env vars injected at target only)
|
|
- live data (rows are generated by the target, never imported from authoring)
|
|
- learned memories (brain capabilities ship; memories are empty seeds)
|
|
- anything target-specific (URLs, IDs, absolute paths)
|
|
5. **Fresh-target assumption** — target must be the Aura tower Odoo (or the
|
|
manifest declares the base modules it needs).
|
|
6. **Rollback is designed in** — reverse install order; each layer must be
|
|
undoable atomically.
|
|
|
|
## Install sequence (target side, pull model)
|
|
|
|
1. Fetch package (from depot git tag or registry).
|
|
2. Verify signature + hash.
|
|
3. Run `install.order` in sequence, each step verified before the next.
|
|
4. Run `install.verify` checklist. Any failure = abort + rollback, target
|
|
reports state, never silently continues.
|
|
|
|
## Local mirror (authoring side)
|
|
|
|
`depot-state.json` (SQLite or JSON): which package version is deployed to which
|
|
target, when, by whom, verification result. This is what enables diff, upgrade,
|
|
and rollback decisions. It never deploys anything itself.
|