Files
GTI_GERENCIADOR_FISCAL/docs/REFERENCE_DATASET_MANIFEST_V1.md
T
gtiandClaude Sonnet 5 21e8282224 feat: Reference Data Registry (Fase 1) + P1 NCM validated + feasibility studies (Fase 5)
Missão 5:

Fase 1 (Reference Data Registry): migration 0034 adds licence_terms, valid_from/
valid_to, file_size_bytes, raw_file_path, parse_errors, submitted_by/approved_by/
approved_at to the existing `datasets` table (additive only - the 9 pre-existing
dataset kinds keep their current auto-activate behavior in
central/app/datasets/service.py, completely untouched, so this changes nothing
about the currently-running engine). New central/app/reference_registry.py is a
separate, NEW ingestion workflow: register_draft() always lands as DRAFT (never
auto-activates), diff_against_vigente() summarizes a draft against the current
VIGENTE of the same kind for admin review, approve_draft()/reject_draft() are
the only way to promote a DRAFT (refuses non-DRAFT rows and refuses a draft
with recorded parse_errors). New admin screen "Tabelas oficiais"
(/admin/reference-datasets, ADMIN only, CSRF, every decision audited as
REFERENCE_DATASET_APPROVE/REJECT) lists the registry with a diff view and
approve/reject buttons. New CLI (scripts/ingest_reference_dataset.py) downloads
an official source (currently: NCM/Siscomex, no login/captcha), validates
(minimum row count, a known-sample spot check), and registers a DRAFT - --dry-run
never writes anything.

P1 (NCM) validated for real: downloaded the live official Siscomex NCM JSON
(2026-09-28, sha256 8a3bf89a..., 15,156 entries) with an identifiable User-Agent,
one request. Its hash is IDENTICAL to the NCM dataset already ACTIVE in the Hub -
confirms the currently loaded table is already current against the official
source today. Raw file kept out of git (.gitignore:
sources/raw/reference_registry/); manifest (URL, date, hash, size) recorded in
docs/REFERENCE_DATASET_MANIFEST_V1.md, including P2-P6 sources still pending URL
confirmation.

Fase 5 (feasibility studies, no code): docs/VIABILIDADE_CCG_DFE_V1.md - CCG/SEFAZ
GTIN lookup and Distribuição DF-e both require the client's own ICP-Brasil
certificate; recommendation is NOT to implement now (would require either the
Hub holding a client certificate - breaks the project's core security model - or
the Agent making new outbound internet calls, against this mission's fixed
rules). Reading the already-authorized purchase-NFe XML from disk via the Agent
(path already stored in XML_MES) is recommended as the next concrete step
instead: no certificate, no new internet call, opt-in per installation, result
always tagged DECLARADO (never auto-promoted - consensus across purchase
invoices is not fiscal truth). Open Food Facts stays identity-only, unchanged.

21 new tests, all passing. Full suite: 1147 passed, 1 skipped.

No write to any Firebird database anywhere. No Agent code touched.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 15:24:55 -03:00

2.4 KiB
Raw Blame History

Manifesto de datasets oficiais baixados — Missão 5

Arquivos brutos não vão para o git (.gitignore: sources/raw/reference_registry/). Este manifesto registra o que foi baixado, de onde, quando e com qual hash — suficiente para reproduzir o download e conferir integridade, sem guardar o arquivo em si no repositório.

Dataset Fonte oficial URL Data SHA-256 Tamanho Linhas Observação
P1 — NCM vigente Siscomex (Governo Federal, sem login/captcha) https://portalunico.siscomex.gov.br/classif/api/publico/nomenclatura/download/json 2026-09-28 8a3bf89a5b89fc3c3391b0a2c3a30cd261b17726a406dd481f39b37d4fb3b51e 3.149.367 bytes 15.156 Hash idêntico ao dataset NCM já ativo no Hub — confirma que a tabela já carregada está em dia com a fonte oficial hoje. Registrado no Reference Data Registry (datasets.id=52 no Hub de desenvolvimento local), reconhecido como já existente (nenhum DRAFT novo foi necessário).

Próximos datasets (P2–P6, Fase 2) — pendentes de confirmação de URL/formato antes de baixar

Por prioridade da missão, ainda não confirmados/baixados nesta passada:

  • P2 Domínios da NF-e (CFOP, CST ICMS, CSOSN, CST PIS/COFINS, CST IPI, unidades) — já parcialmente cobertos por sources/raw/bootstrap_v1/ (CFOP, tabelas MOC) em missões anteriores; confirmar se há uma fonte oficial atualizável programaticamente (Portal Único / SPED) versus os arquivos operator-supplied já carregados.
  • P3 TIPI — já carregada (sources/raw/bootstrap_v1/1 TIPI 2022...xlsx, ACTIVE); confirmar se existe endpoint oficial para verificar vigência sem depender de upload manual.
  • P4 CEST × NCM (Confaz) — já carregada via bootstrap; buscar fonte Confaz oficial navegável por API/CSV para atualização automática futura.
  • P5 EFD-Contribuições (SPED) — parcialmente coberta (SPED_PISCOFINS_TABLES_V3.json já usado pelo motor); confirmar quais das tabelas 4.3.10–4.3.17 têm fonte oficial baixável hoje.
  • P6 ICMS-ST BA — já parcialmente coberta (decreto_2012_13780_ricms_anexo_1...pdf, PDF, parser determinístico ainda não fechado — ver docs/DUPLICATE_KEY_MMMODAS_V1.md/histórico do projeto).

Cada um exige confirmação individual de URL/formato/vigência antes de qualquer download, conforme a regra fixa desta missão — não foi feito nesta passada por prudência de tempo, não por impossibilidade técnica.