Arxi Generació de Contractes i Arquitectura de Projecció
Executive Overview
arxi-contract és el generador/comprovador determinista canònic per als artefactes de projecció Arxi. Emet sortides de esquema/contracte/exemple/glossari/tooltip sota Docs/generated/arxi/ i imposa comprovacions de deriva de fallada tancada.
La generació de tooltips és ara metadades de projecció de classe mundial amb:
- manifest de tooltip compatible amb versions anteriors (
tooltips.json), - catàleg de termes ric (
tooltips.catalog.json), - pointer/token bindings for code blocks and JSON examples
vinculacions de punters/token per blocs de codi i exemples de JSON (
tooltips.annotations.json), - glossari markdown (
glossary.md) generat de la mateixa font de termes.
Autoritat d’Artifacte
Codi del generador autoritatiu:
crates/arxi-contract/src/lib.rscrates/arxi-contract/src/sidecar_api.rscrates/arxi-contract/src/sidecar_api/openapi.rscrates/arxi-contract/src/sidecar_api/artifacts.rscrates/arxi-contract/src/sidecar_api/specs/mod.rs
Autoritat generada arrel:
Docs/generated/arxi/
Autoritat del manifest de màquina:
index.json inclou la versió del contracte més metadades de hash SHA-256 per a cada artefacte. Quan hi ha artefactes de l’API sidecar presents, es fan complir les portes de compatibilitat dels artefactes generats mitjançant scripts/ci/sidecar_contract_gates.py.
Modes de Generador
arxi-contract admet dos modes deterministes:
GenerateMode::Generate- Regenera artefactes i reescriu l’arrel de sortida.
- Elimina fitxers inesperats obsolets sota l’arrel de sortida.
- Fails closed if output-root traversal encounters symlinks or unsupported Es tanquen si la travessia de l’arrel de sortida troba enllaços simbòlics o tipus d’entrada de sistema de fitxers no suportats.
GenerateMode::Check- Els errors es tanquen en faltar fitxers, desplaçament de bytes o fitxers inesperats.
- Fails closed if expected paths resolve through symlinked roots/components Falla tancada si els camins esperats es resolen a través de arrels/componentes enllaçats o fitxers no regulars.
Integració CLI:
arxi contract generatearxi contract comprovar
Model de Determinisme
Els controls de determinisme inclouen:
- ordenació d’artefactes estable a través de mapes/conjunts ordenats,
- codificació JSON canònica a través de JCS,
- hash SHA-256 explícit per a les entrades del manifest,
- comparació de bytes en mode de comprovació contra fitxers compromesos.
Projecció de Schema Conscient de les Restriccions
La generació d’esquemes és en dues etapes:
- inferir la forma estructural a partir d’artefactes de mostra deterministes,
- aplicar restriccions de domini autoritzades mitjançant la superposició de JSON-pointer.
Les superposicions de restriccions inclouen:
- polítiques estrictes de forma de text UUID per a tots els camps d’ID,
- restriccions de cadena hostil i longitud màxima per a camps d’identificador/text,
- política estricta de regex per tipus d’esdeveniment i límit de longitud,
- política de regex
key_idestricta (^[0-9a-f]{64}$), - restriccions de matriu de bytes de longitud fixa per als camps de hash/signatura,
- representacions explícites nullable per a camps opcionals,
- full
BundleSelectoralgebra projection (BySegment,BySegments,ByTrace,ByTimeRange,ByEnvelopeIds,ByFilter, recursive projecció algebraica completaBundleSelector(BySegment,BySegments,ByTrace,ByTimeRange,ByEnvelopeIds,ByFilter, recursiuComposite) a través de l’esquema$defs.
La projecció falla tancada si falten els camins de punter esperats mentre s’apliquen restriccions.
Conjunt d’Artifacts Produïts
Fitxers emes actuals v1:
index.jsonschemas/envelope.schema.jsonschemas/segment.schema.jsonschemas/bundle.schema.jsoncontracts/adapter.jsoncontracts/provider.json- glossari.md
tooltips.json- tooltips.catalog.json
- tooltips.annotations.json
examples/envelope.jsonexamples/segment.jsonexamples/bundle.jsonapis/sidecar.openapi.jsonapis/sidecar.errors.jsonapis/sidecar.enums.jsonapis/sidecar.examples.jsonapis/sidecar.compat.jsonconfig/sidecar.schema.jsonconfig/sidecar.compat.jsonconfig/sidecar.example.tomlconfig/sidecar.md
Conformitat i Validació
Les proves unitàries de arxi-contract validen:
- determinisme de generació repetida,
- consistència del hash/manifesta de bytes de fitxer,
- els exemples generats es validen contra esquemes generats,
- el catàleg de tooltip inclou tots els noms dels mètodes de contracte d’adaptador/proveïdor,
- cobertura de termes bàsics de classe mundial requerida,
- els punters del catàleg de tooltip es resolen contra els artefactes JSON generats,
- les vinculacions d’annotations de tooltip només fan referència a les claus de termes definides,
- schema/runtime invariance for
key_id, hostile text fields, and identifier invariància de l’esquema/runtime per akey_id, camps de text hostils i restriccions de longitud màxima d’identificador. - emissió d’artefactes sidecar i inclusió de manifest.
- consistència de l’error del registre del sidecar i de la línia base de compatibilitat.
- consistència del contracte d’idempotència OpenAPI/compat del sidecar.
- consistència de l’artifacte de configuració del sidecar (enllaç de esquema/compat/exemple/docs).
arxi-contract proves de seguretat dedicades validen:
- el mode de generació rebutja arrels d’output enllaçades amb symlink,
- el mode de generació rebutja els camins fills enllaçats simbòlicament sota l’arrel de sortida,
- el mode de verificació informa sobre el desplaçament de bytes per a artefactes modificats,
- el mode de comprovació rebutja els fitxers d’artifacte esperats enllaçats simbòlicament.
Orquestració i CI
Punt d’entrada d’orquestració d’un sol comandament:
scripts/ci/generate_all.sh
Comportament:
generate: regenerate contract artifacts + run sidecar contract gates +generate: regenerar artefactes de contracte + executar portes de contracte sidecar + regenerar documents de cobertura de proves.check: run contract drift check + sidecar contract gates + docs drift comprovar (fallar tancat).- Optional release mode: if
ARXI_SIDECAR_PERF_GATE=1, enforce sidecar SLO metrics viascripts/ci/sidecar_perf_gate.pyagainst generated perf report artefactes.
Els fluxos de treball CI executen això en les portes de qualitat requerides.
Límits de Transferència de Projecció
Política de transferència i propietat del glossari de Website/i18n:
Docs/roadmap/arxi_generated_contract_sync_and_glossary_policy.md
Això defineix la presència de fitxers requerits, la verificació de hash, l’estabilitat de la ruta i la propietat d’un sol origen del glossari/tooltip.