Az Agencia Estatal de Administración Tributaria (AEAT) tulajdonolja a hivatalos modelo-struktúrát. Az API az alkalmazásprogramozási felületet jelenti.
A futtatási autoritás közzététele
A futtatási autoritás az érvényesített AEAT-nyilvántartás lenyomattal ellenőrzött közzététele, amelyet a telepített számításokhoz és bevallási exportokhoz szánunk. Generált tartalom két fájllal: az authority.current.json egy kis kanonikus leíró, database tagja pedig a mellette lévő pontos authority-<database_sha256>.sqlite3 tartalmat nevezi meg. A leíró és az adatbázis együtt kerül beengedésre; az adatbázis csak olvasható módban nyílik, és nem hidratálódik egyetlen folyamatszintű modellgráfba.
A pár egyetlen könyvtárból oldódik fel, és hogy melyik ez a könyvtár, attól függ, hogyan telepítették a Cadrumót. A telepített terjesztés a cadrumo/_data/registry/authority/ útvonalon hordozza, és ott is oldja fel, konfiguráció nélkül. A munkamásolat a sajátját a tároló gyökerében lévő .authority/ könyvtárba teszi közzé, amely ki van zárva a verziókövetésből, és a CADRUMO_AUTHORITY_ROOT környezeti változóval nevezi meg. Ha ez a változó be van állítva, az a teljes válasz: a feloldás a megnevezett könyvtárat olvassa, és nem esik vissza a csomagolt helyre, így a munkamásolat nem tud csendben olyan csomagolt bájtokból válaszolni, amelyeket lecseréltnek hitt. A leírót nem tartalmazó könyvtár elutasítás, amely megnevezi a közzétételi parancsot, nem pedig üres autoritás. Lásd Érvényesített futtatási autoritás közzététele.
Fogalom |
Jelentés |
Érvényesített jelölt |
A fejlesztési fordító által elfogadott nyilvántartási és forrásbizonyíték-bemenetek. |
Forrásnyugta |
A nyilvántartás és a forrásbizonyítékok gyökérhez relatív tartalma, beleértve a kézzel gondozott bizonyíték-kísérőfájlokat is. |
Fordítónyugta |
A Cadrumo és a fordító érintett kódja, a függőségi kéziratok, a Python fő- és alverziója, valamint a Pydantic verziói. |
Komponensnyugta |
A forrás- és fordítónyugta egyetlen friss, teljes autoritásgenerációhoz kötve. |
Identitáskivonat |
E nyugták tartalomcímzett kombinációja, rögzítve, hogy az elavult artefaktum észlelhető legyen. |
Autoritásleíró |
Az atomi módon lecserélt kiválasztó, amely az adatbázis alapnevét, bájtszámát, fizikai SHA-256 lenyomatát és logikai generációját tartalmazza. |
Autoritásadatbázis |
A tartalomcímzett SQLite-közzététel, amely a tipizált komponenseket, a függőségi sorokat és a teljes kéziratot tartalmazza. |
A leíró formátuma cadrumo-authority-descriptor-v1; pontos tagjai a format, database, database_size, database_sha256 és logical_generation. Az adatbázis formátuma cadrumo-authority-sqlite-v1. Kézirata a logikai generációt és a teljes komponensjegyzéket köti össze. Az adatbázis fizikai lenyomata egyszerre a leíró beengedési ellenőrzése és a tartalomcímzett fájlnév, így a módosított vagy ütköző tartalom elutasításra kerül, még mielőtt a futtatási munka elkezdődne.
A fejlesztési közzétételi parancs a python -m dev.registry.pipeline publish-authority. A beállított autoritásgyökérbe ír, és inkább elutasít, mint helyet választana, ha nincs beállítva; a --destination kapcsolója helyette elszigetelt autoritáskönyvtárat választ. Az egyéni --registry-root vagy --source-root érték mellé kifejezett --profile-schema kell. A parancsokat hordozó termékcsomagban nincs olyan parancs, amely ezt a közzétételt lefordítaná vagy megjavítaná.
A forrásnyugta minden nyilvántartási és forrásbizonyíték-fájl gyökérhez relatív útvonalát és tartalomlenyomatát hajtja össze. A nyilvántartási fájlok CRLF-et LF-re hajtanak; a forrásbizonyíték bájtpontos. A fordítónyugta az érintett forráskóddal, a pyproject.toml, uv.lock fájllal, a Python fő- és alverziójával, valamint a telepített pydantic és pydantic-core verziókkal is változik. Ugyanabban a deklarált környezetben egy friss klón stabil, anélkül hogy összeférhetetlen építési környezetek közt identitást ígérne.
Minden komponenstartalom egyetlen tipizált autoritásérték kompakt kanonikus projekciója. A kötelező mezők mindig kiíródnak; egy mező csak akkor marad ki, ha a tipizált értéke megegyezik a sémája által deklarált alapértelmezéssel. A szigorú rehidratálás visszaállítja ezeket az alapértelmezéseket. A diszkriminátorok és a szerkesztett unióírásmódok a továbbított ábrázolásban maradnak, így a tömörítés soha nem találgat, melyik tipizált változatot kell felépíteni. A decimálisok és a dátumok JSON-szövegek, ha a séma a mezőt decimálisként vagy dátumként tipizálja. Egy szabályozott ténybeli érték lehet szöveg, egész szám, decimális, logikai érték vagy dátum, és a JSON ezeket önmagában az érték alapján nem tudja megkülönböztetni. Ezért minden nem szöveges ténybeli érték olyan objektumként íródik ki, amely egyetlen, a típusát megnevező címkét hordoz:
Tényérték |
Így jelenik meg |
Tizedes |
A {"$decimal": "0.40"} objektum |
Dátum |
A {"$date": "2025-01-01"} objektum |
Egész szám |
A {"$int": 5} objektum |
Logikai érték |
A {"$bool": true} objektum |
Szöveg |
A címke nélküli JSON-karakterlánc, például a "0.40" |
A futtatókörnyezet ugyanazon szigorú séma szerint dekódolja a payloadot, amelyet a fejlesztési fordító használ. Elutasítja az ismeretlen címkét, a hibás vagy nem kanonikus címkézett értéket és a címke nélküli, nem szöveges tényértéket; soha nem következtet a típusra egy karakterlánc alakjából. Elutasít minden kiváltott v1, v2 vagy v3 artefaktumot, és megnevezi, hogy v4 formátumban kell újra közzétenni.
A szerkesztési különbségeket a fordító bontja ki teljes kanonikus revíziókká, nem a termék futtatókörnyezete. Az adatbázis tipizált futtatási katalógusokat is hordoz az áfaszabályozáshoz, a teljesítési hely szabályaihoz, az országálnevekhez, a spanyol postai területekhez, a területi kivételekhez, a pótléksávokhoz és a képviseleti körökhöz. Ezek befagyasztott sémarekordok, nem beágyazott TOML-bájtok és nem tipizálatlan JSON-tartály. Az írás vagy olvasás elutasít egy autoritást, ha bármely kötelező futtatási katalógus üres.
A Modelo- és adótartománytípusok a szerzői fa betöltése nélkül ellenőrzik az azonosítók stabil szintaxisát. A lefordított hatóság birtokolja a tagságot, és az azonosítókat a közzétett szókészletei alapján érvényesíti. Ugyanez a hatóság vetíti ki a támogatás közös időbeli burkát —floor, horizon és az opcionális hard_ceiling—, amelyet a támogatott koordináták elfogadásához használunk.
Az IndexedRegistryAuthority.operation() útnak nincs forrásfordítása, nyers szerkesztésifa-betöltője, javítási útja, mindent betöltő JSON futtatási háttere és JSON-tartaléka. A hiányzó leíró vagy adatbázis elérhetetlenségi hibát vet. A hibás leíró, a váratlan adatbázistag, a hiányos kézirat vagy az érvénytelen komponens formátumhibát vet. A leíró, az adatbázis vagy egy komponens lenyomatának eltérése integritási hibát vet. Ezek a hibák azelőtt jelentkeznek, hogy az autoritásra épülő számítás vagy bevallás továbblépne. A komponensek csak akkor töltődnek be, amikor egy leszögezett művelet kéri őket; a sikeres értékek egy határolt, generációra szűkített gyorsítótárban maradnak.
A fejlesztési C ellenőrzőpont az indexelt olvasót összevetheti egy kifejezett dev.registry.indexed_authority_benchmark JSON-alapvonallal. Az alapvonal ugyanabból az érvényesített, memóriában lévő AuthorityArtifact objektumból íródik, mint a pontos jelölt, megtartja a logikai generációs identitását, és mindent betöltve dekódolja ugyanazt a teljes nyilvános autoritás-szemantikát. A mérés előtt a program ellenőrzi a leíró fizikai adatbázisbájtjait. Az alapvonal mérési szerelvény, nem termékmodul és nem szállított tartalék. A késleltetési és memóriaszámok addig nyitva maradnak, amíg a C ellenőrzőpont le nem fut egy stabil jelölten; ez az API-leírás semmilyen mért nyereséget nem állít.
A futtatási szerződés a szokásos, fájlrendszerre telepített csomagokra vonatkozik, ahol a leírónak és az SQLite-adatbázisnak stabil fizikai útvonala van. A közvetlen zip-importból való futtatás nem támogatott: az SQLite nem tud archívumtagot csak olvasható adatbázisként megnyitni.
A python -m dev.registry.conformance integrity elutasítja azt a leíró/adatbázis közzétételt, amelynek rögzített identitáslenyomata eltér az élő nyilvántartás és fordítási környezete identitásától. A kanonikus parancsról, a közzétételi garanciákról, az aktualitás-ellenőrzésekről és a helyreállítási útról lásd Érvényesített futtatási autoritás közzététele.