Documentació d'Asset Core

Documentació del motor d'estat del món determinista i referències de l'API.

Decision Gate docs

Espais de noms i límits d’identitat

Els espais de noms són la frontera d’aïllament a Asset Core. Definixen on comença i on acaba la identitat, qui pot actuar i com raonar sobre la correcció a gran escala. Aquest concepte explica el model mental: què és un espai de noms, com es delimiten les identitats i com els rols i les classes de polítiques dibuixen les fronteres d’accés en les quals es pot confiar.

Problema que resol aquest concepte

Quan executeu motors d’estat deterministes en producció, necessiteu límits estrictes. Sense ells, els sistemes multi-tenant filtren estat, els IDs col·lideixen i la governança és un caos. Els problemes no són subtils:

  • Fugida d’estat entre llogaters quan els mateixos IDs numèrics signifiquen coses diferents en mons diferents.
  • Identitat ambigua quan un contenidor o classe es fa referència sense context.
  • Rastres d’auditoria poc fiables quan les decisions d’accés són implícites o inconsistents.
  • Automatització insegura quan els agents poden cridar operacions fora del seu abast previst.

Els espais de noms resolen això fent que la isolació sigui explícita, la identitat estigui delimitada i l’accés estigui controlat.

Idees principals

Els espais de noms són mons

Cada espai de noms és un món completament aïllat amb el seu propi espai d’identitat, historial de compromisos i estat de projecció. El daemon d’escriptura tracta l’espai de noms com una clau de ruteig; el daemon de lectura materialitza les projeccions per espai de noms. Aquest és el model d’escalat: un escriptor per espai de noms, espais de noms infinits en total.

Dins d’un espai de noms, aquests són delimitats i independents:

  • Registre de classes (ID de classe, regles de comportament i formes)
  • IDs de contenidors i ubicacions
  • IDs d’instància i jerarquia de propietat
  • Registre de compromisos i números de seqüència mundial

La identitat és localitzada, no global

La identitat a Asset Core és namespace-local. Un class_id o container_id només té significat dins del seu espai de noms. La veritable identitat és el pare (namespace_id, local_id). Això et proporciona una aïllament net sense forçar IDs globalment únics.

Exemple: class_id = 42 pot significar “Tub de mostra” en l’espai de noms 1001 i “Roda dentada” en l’espai de noms 2002. No hi ha conflicte perquè viuen en mons diferents.

Això s’aplica en el moment de l’execució. Les operacions que fan referència a ID d’un espai de noms incorrecte són rebutjades. El temps d’execució mai intenta reconciliar la identitat entre espais de noms perquè això seria un error d’integritat de dades, no una característica.

Rols, classes de política i control d’accés

Els espais de noms també defineixen qui pot actuar. Asset Core utilitza un model d’autorització per defecte de denegació:

  • Un principal ha d’estar autenticat i mapejat a rols.
  • Els rols atorguen accés a operacions específiques (per domini i acció).
  • Les classes de polítiques restringeixen operacions arriscades en espais de noms de major confiança.
  • Les ACL de namespace poden afegir o denegar permisos per a principals específics.

Així és com manteniu l’automatització segura. Una eina que pot moure instàncies en un espai de noms de laboratori no hauria de poder cremar instàncies en un espai de noms de producció a menys que se li concedeixi explícitament. La reversió del compromís és el seu propi permís; l’accés al compromís no implica drets de desfer.

El cicle de vida i la línia de descens són explícits

Els espais de noms tenen estats de cicle de vida explícits (provisionat, desactivat, eliminant). Poden ser congelats o establerts com a només lectura durant incidents. Els espais de noms bifurcats porten metadades de línia (pare, punt de bifurcació) de manera que podeu modelar ramificacions sense reescriure la història.

Això transforma la governança en una superfície explícita i auditable en lloc d’una propietat emergent.

L’espai de seqüència és per-namespace

Els números de seqüència del món són monòtonament creixents dins d’un espai de noms. Són l’ordre estable per a la reproducció, auditoria i semàntica de llegir les teves escriptures. Els números de seqüència no tenen significat entre espais de noms. Si necessites ordenació entre mons, ho fas a la capa de la teva aplicació.

Com s’integra al sistema

Els espais de noms apareixen en cada camí crític:

  • Escriure ruta: Tots els commits es dirigeixen per namespace_id. La garantia d’un sol escriptor s’aplica per namespace.
  • Llegir ruta: Les projeccions es construeixen i es serveixen per espai de noms, amb metadades de frescor limitades a aquest món.
  • Camí de governança: El cicle de vida de l’espai de noms, la classe de política i les ACL determinen si una sol·licitud és acceptada.

En la pràctica, això significa que tu:

  1. Crear o proporcionar un espai de noms.
  2. Assignar rols i portes de classe de política.
  3. Registreu classes i contenidors dins d’aquest espai de noms.
  4. Utilitzeu números de seqüència del món per raonar sobre la consistència i la reproducció.

Invariants i garanties clau

Aïllament

  • No s’accepten referències entre espais de noms.
  • Cada registre i índex té un abast d’espai de noms.

Estabilitat de la identitat

  • Un ID local no té significat sense el seu espai de noms.
  • La mateixa ID numèrica es pot reutilitzar de manera segura a través dels espais de noms.

Ordenació determinista

  • Els números de seqüència del món són monòtons per espai de noms.
  • La reproducció preserva el mateix ordre i resultats dins d’aquest món.

Accés per defecte denegat

  • Espais de noms, rols o classes de polítiques desconegudes deneguen l’accés.
  • L’accés mai s’infereix; ha de ser concedit.

Vegeu també