Certification
PlannedDesign is complete. Implementation is in phases F1–F3 — no certificates are issued yet.
Connectors are graded: what guarantees they can offer is tested and recorded in a certificate.
Levels
Section titled “Levels”| What it grants | Gate | |
|---|---|---|
| L0 Catalogue | Visible in the catalogue. Not callable | Schema · no inline secrets · valid scope |
| L1 Read | Reads work. Writes blocked | probe leaves no trace · responses match schema · unknown id → not_found |
| L2 Write | Writes work. Result is ACKNOWLEDGED |
Idempotency · duplicate storm → 1 effect · timeout → UNKNOWN |
| L3 Verified write | Result can be VERIFIED |
Read-back on every write · the predicate separates success and failure |
| L4 Trusted | For high-risk tenants | Live sandbox · fault injection · secret hygiene |
⚠ L2 → L3 is not a natural step
Section titled “⚠ L2 → L3 is not a natural step”It depends on the provider, not on you:
read-back API exists → L3 possibleno read-back API → STAYS at L2What a certificate is
Section titled “What a certificate is”Not a badge — a signed claim. It binds to a digest, not a version:
{ "connector_id": "bitrix24", "version": "2.1.0", "manifest_digest": "sha256:4f1c…", "adapter_digest": "sha256:9ab7…", "level": "L3", "suite_version": "conformance@1.0.0", "evidence_ref": "run:cert-2026-08-12-0117", "sandbox": "live", "issued_at": "…", "expires_at": "…", "signature": "…"}| Why | |
|---|---|
| Digest | A version number is a claim; a digest is a fact. One changed byte voids the certificate |
| Expiry | Provider APIs change without warning. A certificate without expiry is a permanent claim about a one-off test |
| Evidence ref | “Passed” is not enough: which run, which responses, which predicate |
Runtime enforcement
Section titled “Runtime enforcement”| Condition | What the hub does |
|---|---|
| No certificate | ⛔ refuses to load |
| Digest mismatch | ⛔ refuses to load — code was swapped |
| Expired | ⚠ read-only |
| Level below requirement | ⚠ operation blocked |
| Revoked | ⛔ stops immediately |
⚠ A Domain Pack declares a minimum level per connector (min_level).
A pack requiring L3 will not install against an L2 connector — being
rejected at install time is clearer than an unexpected UNKNOWN at
runtime.
Sandbox — live or cassette
Section titled “Sandbox — live or cassette”| Reaches | Note | |
|---|---|---|
| Live sandbox | L0 → L4 | Scoped, revocable credentials |
| Cassette (recorded responses) | L0 → L2 | Cheap, but the cassette itself can lie |
- Conformance suite — C1–C12
- The verification block — the precondition for L3