Pular para o conteúdo principal

Plano de execução de paridade do adaptador Snowflake

Propósito

Este é o plano local, compromisso por compromisso, para trazer contractforge-snowflake para o mesmo nível de maturidade do Databricks e AWS adaptadores.

O objetivo é capacidade e paridade de disciplina de lançamento, e não nomes de arquivo idênticos. Snowflake deve manter um formato de pacote nativo do Snowflake, mas todos os pacotes suportados capacidade precisa dos mesmos sinais de maturidade:

  1. comportamento do planejador;
  2. implementation;
  3. CLI surface;
  4. unit tests;
  5. cobertura de smoke em conta real onde o comportamento toca Snowflake;
  6. documentos e exemplos;
  7. validação de evidências/tabela de controle.

Linha de base atual

Desde a primeira smoke local ao vivo, Snowflake tem:

  1. planejamento e suporte a pacotes de publicação;
  2. execução do executor de biblioteca local por meio de uma sessão Snowflake;
  3. planejamento de origem de tabela, SQL e arquivo preparado;
  4. anexar, substituir, upsert do estado atual e caminhos de tempo de execução upsert hash-diff;
  5. qualidade básica, política de esquema, evidência de estado e tabela de controle;
  6. caminhos de código de renderização de tarefa/procedimento e publicação para estágio;
  7. reconciliação de custos e ajudantes de painel/manutenção;
  8. a temporary live smoke harness under .tmp/snowflake-smoke.

Known baseline gaps:

  1. o harness de smoke local não é um pacote de primeira classe/comando CLI;
  2. CLI run ainda não abre uma sessão de conector real para execuções que não sejam de simulação;
  3. publicação de estágio, execução de procedimento Snowpark e execução de tarefa não são fumadas ao vivo;
  4. a cobertura em tempo real de governança/acesso/custo/caminho de falha está incompleta;
  5. a paridade fonte/preparação é muito mais fina que Databricks/AWS;
  6. state/idempotency/locking is thinner than Databricks;
  7. migrações de tabelas de controle e compatibilidade de tabelas existentes precisam ser reforçadas.

Plano de compromisso

Compromisso 01: Registrar o Plano de Execução da Paridade

Objetivo: tornar este plano de execução numerado visível no repo.

Implementation items:

  1. add docs/specs/snowflake-adapter-parity-execution-plan.md;
  2. vincule-o de adapters/snowflake/README.md;
  3. vincule-o de docs/README.md;
  4. não altere o comportamento do tempo de execução.

Validação:

  1. inspect markdown links;
  2. nenhum teste de tempo de execução é necessário, a menos que as ferramentas de documentação sejam executadas.

Commit message:

docs: add Snowflake parity execution plan

Confirmação 02: execução CLI apoiada por conector

Objetivo: fazer o contractforge-snowflake run executar uma execução real do executor de biblioteca local usando opções de conector Snowflake.

Implementation items:

  1. divida o código CLI o suficiente para manter o cli.py fino ou adicionar auxiliares focados em contractforge_snowflake/cli_run.py;
  2. add --connect-options to run;
  3. abra uma conexão de conector preguiçosamente apenas para execução sem simulação;
  4. envolva conexões do conector com um adaptador de sessão que expõe session.sql(...).collect();
  5. preservar o comportamento atual de funcionamento a seco;
  6. conexões próximas sobre sucesso e fracasso;
  7. redigir valores de opção de conexão de erros/saída.

Tests:

  1. A simulação do CLI ainda evita a importação do conector;
  2. CLI sem simulação abre _connect, passa a sessão para run_snowflake_contract e fecha;
  3. wrapper de sessão do conector expõe schema.names/schema.fields do cursor metadata;
  4. connection failure returns a clear CLI error.

Live smoke:

contractforge-snowflake run `
--contract-uri .tmp\snowflake-smoke\contracts\orders_append.contract.json `
--environment-uri .tmp\snowflake-smoke\environment.json `
--connect-options .tmp\snowflake-smoke\connect-options.yaml

Commit message:

feat(snowflake): run contracts through connector-backed CLI

Compromisso 03: Promover o mínimo de smoke em pacotes de primeira classe

Objetivo: substituir o harness de smoke temporário .tmp por um adaptador de smoke reutilizável comando.

Implementation items:

  1. add contractforge_snowflake/smoke/models.py;
  2. add contractforge_snowflake/smoke/minimal.py;
  3. add contractforge_snowflake/smoke/runner.py;
  4. adicione o comando CLI smoke;
  5. suporte --connection para documentação de interoperabilidade Snowflake CLI e --connect-options para execução do conector;
  6. support --database, --schema, --table-prefix;
  7. default to non-destructive CF_SMOKE_* objects;
  8. escreva um resumo JSON com contagens de destino, contagens de tabela de controle, IDs de execução e warnings.

Tests:

  1. a geração de contratos de smoke é determinística;
  2. a configuração do smoke toca apenas no esquema/prefixo configurado;
  3. smoke summary marks all scenarios pass/fail;
  4. O comando smoke recusa uma limpeza ampla, a menos que --execute-cleanup seja fornecido.

Live smoke:

contractforge-snowflake smoke --connect-options .tmp\snowflake-smoke\connect-options.yaml

Commit message:

feat(snowflake): add first-class minimal smoke runner

Commit 04: Tabela de controle DDL e fortalecimento de migração

Objetivo: tornar segura a criação de tabelas de evidências para contas Snowflake existentes.

Implementation items:

  1. mantenha todos os identificadores de tabela de controle gerados entre aspas;
  2. adicionar inspeção de migração/compatibilidade para letras maiúsculas existentes sem aspas control tables;
  3. evite CREATE DATABASE incondicional quando a função atual possui apenas esquema objetos e o banco de dados já existem;
  4. adicione uma opção de implantação para DDL somente validado;
  5. record skipped bootstrap statements in smoke summary;
  6. documentar privilégios mínimos para usuários do serviço.

Tests:

  1. reserved words such as trigger are quoted;
  2. existing incompatible tables produce actionable errors;
  3. existing compatible tables are reused;
  4. O bootstrap da função de serviço pode ignorar a criação de banco de dados/esquema existente.

Live smoke:

  1. execute o mínimo de smoke com função de serviço no PUBLIC existente;
  2. execute o mínimo de smoke em um novo esquema com função de administrador.

Commit message:

fix(snowflake): harden control table bootstrap

Commit 05: Métricas de tempo de execução e integridade de evidências de execução

Objetivo: preencher a evidência de execução com métricas de linha e contexto de consulta Snowflake mais próximo to AWS/Databricks.

Implementation items:

  1. capturar linhas lidas antes dos filtros de qualidade;
  2. capturar linhas escritas para anexar/substituir;
  3. capturar contagens inseridas/atualizadas onde os metadados de resultado Snowflake suportam;
  4. armazenar IDs de consulta para instruções de propriedade do adaptador, quando disponíveis;
  5. incluir armazém, função, banco de dados, esquema e versão Snowflake nos metadados;
  6. incluir contagens de comando/consulta em metrics_json;
  7. preserve redaction in error paths.

Tests:

  1. anexar evidência de sucesso tem contagens de linhas;
  2. a evidência de sucesso de substituição tem contagens de linhas;
  3. registros upsert/hash-diff métricas de gravação disponíveis;
  4. os metadados de resultados do conector são normalizados sem Snowpark.

Live smoke:

  1. verify ctrl_ingestion_runs.rows_read;
  2. verifique se metrics_json contém IDs de consulta ou nulos documentados.

Commit message:

feat(snowflake): record runtime row and query metrics

Commit 06: smoke de Evidência do Caminho de Falha

Objetivo: fazer com que o comportamento de falha do Snowflake corresponda à disciplina AWS/Databricks.

Implementation items:

  1. adicionar cenário de smoke para tabela de origem ausente;
  2. adicionar cenário de smoke por falha na regra de qualidade;
  3. persist ctrl_ingestion_errors;
  4. persist failed ctrl_ingestion_runs;
  5. garantir que a exceção original ainda seja propagada para saída diferente de zero CLI;
  6. include redacted error text in summary.

Tests:

  1. falha em tempo de execução grava evidência de erro;
  2. aborto de qualidade grava evidências de qualidade/erro/execução;
  3. secrets/password/token-like strings are redacted.

Live smoke:

contractforge-snowflake smoke-failure-paths --connect-options ...

Commit message:

feat(snowflake): validate failure path evidence

Commit 07: Registro de origem e camada de paridade de origem

Objetivo: remover o tratamento de origem do módulo de execução de tempo de execução monolítico.

Implementation items:

  1. add sources/registry.py;
  2. add sources/table.py;
  3. add sources/sql.py;
  4. add sources/stage_files.py;
  5. adicione sources/review.py para famílias de origem não suportadas/requeridas para revisão;
  6. mantenha o comportamento idêntico para fontes atualmente suportadas;
  7. retornar metadados de origem estruturados para evidências.

Tests:

  1. tabela/view/sql fonte SQL permanece inalterada;
  2. a fonte do estágio SQL permanece inalterada;
  3. tipos de origem não suportados produzem status de planejador existentes;
  4. os metadados de origem estão disponíveis para o redator da evidência.

Commit message:

refactor(snowflake): introduce source registry

Commit 08: Registro de preparação e transformações compatíveis com SQL

Objetivo: alcançar a paridade de transformação de linha de base para operações compatíveis com Snowflake SQL.

Implementation items:

  1. add preparation/registry.py;
  2. support projection/column selection;
  3. support transform.cast;
  4. support transform.derive;
  5. suporte transform.standardize para corte/inferior/superior;
  6. filtros de suporte quando representados pelo modelo semântico central;
  7. suporte à desduplicação determinística usando QUALIFY ROW_NUMBER();
  8. keep complex nested shape as REVIEW_REQUIRED until live-tested.

Tests:

  1. lança renderização Snowflake SQL;
  2. deriva renderização Snowflake SQL com aviso de dialeto;
  3. standardization renders SQL functions;
  4. deduplicate requires deterministic ordering;
  5. a forma aninhada não suportada permanece necessária para revisão.

Live smoke:

  1. SQL-compatible transform scenario;
  2. deduplicate/upsert scenario.

Commit message:

feat(snowflake): add SQL-compatible preparation registry

Commit 09: Registro em modo de gravação

Objetivo: dividir os modos de gravação e torná-los testáveis ​​de forma independente.

Implementation items:

  1. add write_modes/registry.py;
  2. add write_modes/append.py;
  3. add write_modes/overwrite.py;
  4. add write_modes/upsert.py;
  5. add write_modes/hash_diff.py;
  6. manter explícitos os limites de revisão de exclusão reversível de histórico/instantâneo;
  7. centralizar a validação da chave de mesclagem.

Tests:

  1. append SQL unchanged;
  2. overwrite SQL unchanged;
  3. upsert validates null/duplicate keys;
  4. hash-diff excludes declared columns;
  5. modos não suportados não podem ser executados silenciosamente.

Commit message:

refactor(snowflake): split write mode execution

Compromisso 10: Política de Esquema e Evidência de Esquema

Objetivo: aproximar a política de esquema da maturidade Databricks/AWS.

Implementation items:

  1. inspecionar o esquema de destino por meio de INFORMATION_SCHEMA.COLUMNS quando conectado;
  2. manter substituto de metadados do conector para wrapper de sessão local;
  3. enforce strict/additive/permissive consistently;
  4. escreva ctrl_ingestion_schema_changes para alterações aditivas;
  5. classify type widening/incompatible changes;
  6. adicione detalhes de alteração de esquema para executar evidências.

Tests:

  1. strict added/removed columns fail;
  2. additive nullable columns are applied;
  3. alterações de tipo incompatíveis falham ou são revisadas de acordo com a política;
  4. a evidência de alterações de esquema é escrita.

Live smoke:

  1. additive column smoke;
  2. strict failure smoke.

Commit message:

feat(snowflake): add schema policy evidence

Compromisso 11: Expansão da Paridade de Qualidade

Objectivo: implementar e viver regras de qualidade apoiadas pelo fumo.

Implementation items:

  1. confirm not_null, required_columns, accepted_values, min_rows, unique_key, max_null_ratio e expressões em nível de linha;
  2. rejeitar quarentena agregada sem predicado de linha;
  3. adicionar tratamento de status de aviso/falha/quarentena;
  4. persistir ctrl_ingestion_quality e ctrl_ingestion_quarantine;
  5. incluir resumo de qualidade nas evidências de execução.

Tests:

  1. pass/warn/fail/quarantine unit tests;
  2. aggregate quarantine rejection;
  3. filtros de quarentena em nível de linha visam gravação.

Live smoke:

  1. qualidade de passe;
  2. qualidade de linha em quarentena;
  3. qualidade de aborto.

Commit message:

feat(snowflake): expand quality and quarantine runtime

Compromisso 12: Estado, Idempotência e Bloqueios

Goal: bring state handling toward Databricks maturity.

Implementation items:

  1. persistir no último estado de sucesso para cada execução;
  2. support watermark candidate calculation;
  3. support previous watermark filtering;
  4. adicionar pesquisa de idempotência para execuções idempotentes declaradas;
  5. add lock acquire/release helpers;
  6. registrar evidências de bloqueio/estado em tabelas de controle.

Tests:

  1. fonte de filtros de marca d'água anterior;
  2. successful run updates state;
  3. a repetição idempotente pode pular;
  4. lock acquisition detects active lock;
  5. a liberação do bloqueio não mascara as falhas originais.

Live smoke:

  1. two-run watermark scenario;
  2. idempotent replay scenario.

Commit message:

feat(snowflake): add state idempotency and locks

Compromisso 13: Comentários e tags de governança

Objetivo: validar anotações Snowflake ao vivo.

Implementation items:

  1. implementar comentários de tabela;
  2. implement column comments;
  3. implementar aplicação de tag quando existirem objetos de tag;
  4. suporte ao modo somente validação para tags;
  5. persist ctrl_ingestion_annotations;
  6. document tag namespace requirements.

Tests:

  1. comentários renderizados/aplicados;
  2. tag ausente pode avisar ou falhar por política;
  3. a evidência da anotação omite os valores.

Live smoke:

  1. comments smoke;
  2. etiqueta somente smoke validada;
  3. tag opcional aplica smoke quando o objeto tag existe.

Commit message:

feat(snowflake): apply comments and tag annotations

Compromisso 14: Concessões de acesso e revisão de políticas

Objetivo: tratamento de acesso maduro sem alterações destrutivas inseguras.

Implementation items:

  1. map grants to Snowflake privileges;
  2. implementar plano de subsídio somente validado;
  3. implementar aplicar subsídios quando explicitamente solicitado;
  4. renderizar política de acesso de linha SQL;
  5. política de mascaramento de renderização SQL;
  6. manter revogações destrutivas obrigatórias para revisão;
  7. persist ctrl_ingestion_access.

Tests:

  1. plano de concessão torna SQL seguro;
  2. evidências de registros somente validados sem concessão;
  3. a política de linha/máscara SQL valida os campos obrigatórios;
  4. a deriva destrutiva aumenta a necessidade de revisão.

Live smoke:

  1. concessão de smoke somente para validação;
  2. optional grant apply smoke to test role.

Commit message:

feat(snowflake): add access grant and policy evidence

Commit 15: Stage Publish Live Smoke

Objetivo: provar que os pacotes de publicação podem ser carregados e consumidos a partir de um estágio Snowflake.

Implementation items:

  1. adicionar configuração de smoke para estágio interno;
  2. publicar artefatos no stage;
  3. carregar artefatos de contrato/ambiente de volta por meio do carregador de tempo de execução;
  4. executar um contrato de artefato preparado por meio de tempo de execução apoiado por conector local;
  5. resumir URIs de manifesto e artefato.

Tests:

  1. validação do estágio URI;
  2. unsafe stage paths rejected;
  3. publish closes owned connections on failure.

Live smoke:

contractforge-snowflake smoke-stage-publish --connect-options ...

Commit message:

feat(snowflake): smoke stage publish artifacts

Compromisso 16: Implantação do procedimento Snowpark

Objetivo: implantar e executar o procedimento de tempo de execução estável Snowflake.

Implementation items:

  1. construir/instalar roda adaptadora para importação de procedimento;
  2. upload wheel to stage;
  3. criar ou substituir procedimento de tempo de execução;
  4. procedimento de chamada com URIs de artefato de contrato/ambiente;
  5. capturar id e resultado da consulta do procedimento;
  6. documentar os pacotes/importações necessários.

Tests:

  1. o procedimento SQL renderiza importações/pacotes determinísticos;
  2. unsafe wheel URIs are rejected;
  3. procedure call SQL is safe.

Live smoke:

  1. procedimento de implantação;
  2. executar um contrato anexo por meio de procedimento;
  3. verificar alvo/evidência.

Commit message:

feat(snowflake): deploy stable Snowpark runner procedure

Compromisso 17: Implantação e execução do gráfico de tarefas

Objetivo: provar a execução do projeto agendado/dependência em Snowflake real.

Implementation items:

  1. criar gráfico de tarefas a partir do cronograma e dependências do projeto;
  2. implantar tarefas chamando procedimento de executor estável;
  3. support dry-run/apply/resume/suspend;
  4. execute a tarefa root manualmente para smoke;
  5. poll task history;
  6. persistir resumo de evidências de tarefas.

Tests:

  1. schedule timezone renders correctly;
  2. dependency AFTER renders correctly;
  3. resume/suspend commands are explicit;
  4. task graph refuses missing artifact URI/procedure.

Live smoke:

contractforge-snowflake smoke-task-graph --connect-options ...

Commit message:

feat(snowflake): deploy and smoke task graph execution

Compromisso 18: Paridade do Projeto CLI

Goal: make Snowflake project commands as usable as AWS/Databricks equivalents.

Implementation items:

  1. split deploy-project implementation if needed;
  2. adicione run-project ou comando de execução equivalente;
  3. adicione --wait e pesquisa de status;
  4. adicionar modos de saída somente resumo e JSON;
  5. adicione o comando plano de limpeza;
  6. adicione sinalizadores de aplicação com custo limitado.

Tests:

  1. a simulação do projeto valida todas as etapas;
  2. implantação de blocos de etapas não suportados;
  3. apenas resumo omite artefatos barulhentos;
  4. o plano de limpeza é não destrutivo por padrão.

Live smoke:

  1. implantar projeto em duas etapas;
  2. run/wait;
  3. verificar os alvos e as evidências.

Commit message:

feat(snowflake): add project run and cleanup CLI

Commit 19: Cost Reconciliation Live Smoke

Objetivo: validar a evidência de custo Snowflake após a latência de uso da conta.

Implementation items:

  1. reconcile by structured query tag;
  2. record query history signals;
  3. registrar sinais de atribuição de consulta quando disponíveis;
  4. incluir metadados de medição/tarefa do armazém, quando disponíveis;
  5. support delayed poll/retry configuration.

Tests:

  1. query history SQL filters by run id;
  2. linhas de uso da conta ausentes retornam status atrasado/pendente;
  3. a inserção de evidência de custo é idempotente o suficiente para reconciliação repetida.

Live smoke:

  1. run minimal smoke;
  2. reconciliar o custo para um ID de execução;
  3. verifique as linhas ctrl_ingestion_cost ou o status pendente documentado.

Commit message:

feat(snowflake): smoke query history cost reconciliation

Commit 20: Expansão de fontes para formatos de stage

Objetivo: ampliar o suporte à fonte de arquivos, mantendo a extração não-Snowflake review-first.

Implementation items:

  1. suporte CSV preparado com formato de arquivo;
  2. suporte JSON encenado com projeção VARIANT;
  3. apoiar a projeção Parquet encenada sempre que viável;
  4. classify external stage requirements;
  5. manter HTTP/JDBC/Kafka necessária para revisão, a menos que seja pré-preparado.

Tests:

  1. CSV staged read;
  2. JSON staged read;
  3. Parquet leitura encenada ou revisão explícita;
  4. unsafe file format/stage rejected.

Live smoke:

  1. stage small CSV;
  2. run bronze staged-file append;
  3. validar evidências de destino e cópia/fonte.

Commit message:

feat(snowflake): expand staged file source support

Commit 21: Linhagem e explicação de evidências

Goal: populate lineage/explain control tables.

Implementation items:

  1. escrever a linhagem ContractForge imediata durante a execução;
  2. add optional delayed ACCESS_HISTORY reconciliation;
  3. capture a saída EXPLAIN para instruções suportadas;
  4. persist ctrl_ingestion_lineage;
  5. persist ctrl_ingestion_explain.

Tests:

  1. o evento de linhagem inclui ID de origem/destino/execução;
  2. explicar o texto do plano de armazenamento de captura;
  3. Account Usage latency is handled as pending.

Live smoke:

  1. verificar linhas de linhagem;
  2. verifique as linhas explicativas.

Commit message:

feat(snowflake): record lineage and explain evidence

Commit 22: Documentação e Exemplos

Objetivo: documentar a operação do Snowflake no mesmo padrão do AWS/Databricks.

Implementation items:

  1. add docs/adapters/snowflake.md;
  2. add service-user/PAT/key-pair setup guide;
  3. add minimal smoke guide;
  4. adicionar guia de implantação do projeto;
  5. adicionar guia de governança/acesso;
  6. add cost reconciliation guide;
  7. update site docs if applicable;
  8. adicione projeto de exemplo Snowflake do mundo real.

Validação:

  1. os links docs passam nos testes de documentação existentes;
  2. exemplos são renderizados com CLI atual.

Commit message:

docs: add Snowflake adapter operations guide

Commit 23: Matriz de Estabilização e CI Gates

Goal: make readiness measurable.

Implementation items:

  1. add docs/specs/snowflake-stabilization-matrix.md;
  2. listar o status de suporte para cada recurso de fonte/gravação/governança/evidência;
  3. mapeie cada linha para testes e comando de smoke;
  4. adicionar fluxo de trabalho GitHub opcional/manual para smoke Snowflake;
  5. adicione verificação de embalagem para extras de tempo de execução.

Tests:

  1. mapa de documentação inclui matriz;
  2. os testes de embalagem incluem contractforge-snowflake[runtime] sempre que viável;
  3. A sintaxe do fluxo de trabalho do CI é válida.

Commit message:

docs: add Snowflake stabilization matrix

Commit 24: Release Candidate Cleanup

Objetivo: terminar a disciplina de lançamento com qualidade alfa.

Implementation items:

  1. remover dependências temporárias do .tmp smoke dos documentos;
  2. garantir que as exportações públicas de API sejam estáveis;
  3. run full tests;
  4. run live minimal smoke;
  5. run live failure smoke;
  6. execute estágio/procedimento/tarefa ao vivo onde as credenciais permitirem;
  7. atualizar o status de vencimento do README;
  8. marque limitações conhecidas de necessidade de revisão.

Validação:

  1. uv run pytest;
  2. uv build;
  3. resumo do smoke real do Snowflake anexado às notas de release;
  4. nenhuma importação do SDK Snowflake no caminho de importação padrão.

Commit message:

chore(snowflake): prepare adapter alpha release

Running Status

Use esta seção como terreno de compromisso.

CommitStatusNotes
01CompleteDocumento de plano e links adicionados.
02CompleteCLI apoiado por conector é executado e testes focados são aprovados. A execução da função de serviço é desbloqueada pelo Commit 04.
03CompletePacote smoke de primeira classe e CLI adicionados; smoke embalada ao vivo passada com CFINGESTSVC.
04CompleteA tabela de controle DDL pode ignorar a inicialização do banco de dados/esquema existente; smoke de função de serviço ao vivo passada em CONTRACTFORGE_TEST_DB.PUBLIC.
05CompleteLinhas de tempo de execução/métricas de consulta registradas em evidências de execução; linhas verificadas de smoke embaladas ao vivo e IDs de consulta.
06Completesmoke-failure-paths adicionado; smoke viva verificou evidências de falta de fonte e aborto de qualidade.
07CompleteRegistro de origem adicionado para fontes de tabela/view/sql/stage; sucesso e fracasso ao vivo passam após a refatoração.
08CompleteRegistro de preparação adicionado com projeção de metadados, filtros, transformações de substituição nativas do Snowflake, desduplicação determinística e passagem de smoke de transformação/desduplicação ao vivo.
09CompleteModos de gravação divididos em módulos de registro anexar/substituir/upsert/hash-diff; testes focados e smoke de sucesso/fracasso ao vivo foram aprovados.
08PendingPreparation registry.
09PendingRegistro em modo de gravação.
10CompleteA política de esquema agora inspeciona INFORMATION_SCHEMA com fallback de conector, registra evidências aditivas de alteração de esquema/métricas de execução, rejeita alterações de tipo incompatíveis e passagens aditivas/estritas em tempo real são aprovadas.
11CompleteO tempo de execução de qualidade agora registra resumos por regra, propaga quality_status em evidências de execução, rejeita quarentena agregada, filtra gravações de quarentena em nível de linha, relata métricas de linha em quarentena e passa/quarentena/aborta smokes passadas ao vivo.
12CompleteO tempo de execução de estado agora cita colunas da tabela de controle, registra linhas de estado com falha, suporta filtragem de marca d'água/gravação de candidato anterior, ignora replays de idempotência bem-sucedidos com evidências e fornece aquisição/liberação de bloqueio opcional com marca d'água/fumos de idempotência ao vivo.
13CompleteComentários de tabela/coluna, tag qualificada SQL, evidência somente de validação de tag, políticas de ignorar/avisar/reprovar, redação de evidências de anotação, documentos e smoke de comentários ao vivo/validação de tag aprovada.
14CompleteConcessões, evidência de acesso somente validação, política de acesso de linha SQL, política de mascaramento SQL, controle de revisão de revogação destrutiva, redação de evidência de acesso, documentos e smoke de acesso somente validação ao vivo aprovada.
15Completesmoke-stage-publish cria um estágio interno temporário, publica o pacote do executor de biblioteca, recarrega artefatos de manifesto/contrato/ambiente de @stage por meio de GET apoiado por conector, executa o contrato de teste e passa a smoke ao vivo.
16CompleteO comando do procedimento smoke agora prepara importações ZIP compatíveis com Snowflake para as rodas do núcleo/adaptador construídas, padroniza os pacotes de procedimento para o conjunto de dependências de tempo de execução, ignora a mutação da tag de consulta somente do conector dentro do manipulador Snowpark e o smoke do procedimento hospedado ao vivo passado com o ID de consulta 01c4ea61-0001-6b57-0001-084600149952.
17CompleteCiclo de vida da tarefa SQL, consulta de histórico de tarefas em nível de gráfico, smoke-task-graph, testes de simulação e conjunto focado aprovados. A smoke do gráfico de tarefas ao vivo passou depois que as concessões de tarefas foram provisionadas.
18CompleteAdicionada execução de tarefa simulada/ao vivo run-project com espera de histórico de tarefa limitada opcional, saída JSON somente resumo, cleanup-plan não destrutivo, testes e documentos.
19CompleteA reconciliação de custos agora investiga IDs de execução estruturados do QUERY_TAG, retorna PENDING para uso de conta atrasado ou indisponível, exclui sinais de custo anteriores de propriedade do adaptador antes da inserção, registra o histórico de consultas e sinais opcionais de atribuição de consulta, expõe sinalizadores de espera/pesquisa CLI e passa nos testes focados. As concessões de uso de conta ativa foram validadas para SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY e QUERY_ATTRIBUTION_HISTORY. Tags de consulta em tempo de execução foram corrigidas para armazenar JSON analisáveis ​​usando nomes de destino sem aspas; smoke mínima fresca passada com a execução d8bc24b9-f36e-4e44-8383-115ca89a925a, e a reconciliação permanece corretamente PENDING até que a latência de uso da conta exponha esse novo ID de execução.
20CompleteA renderização de origem de arquivo preparada agora suporta projeções posicionais CSV, projeções tipadas/carga útil JSON e projeções tipadas Parquet com formatos de arquivo Snowflake nomeados ou padrões de estágio; formatos de teste não suportados são necessários para revisão e caminhos de teste/expressões de coluna/mapeamentos de formato de arquivo inseguros são rejeitados. Os testes de origem focada são aprovados. O anexo de arquivo de teste Live CSV passou com a execução 0159e736-5c5e-4dfd-91cb-3b5373c36369, gravou 2 linhas em CF_SMOKE_STAGEFMT_ORDERS e os objetos temporários de estágio/formato de arquivo/destino foram limpos.
21CompleteA execução em tempo de execução agora grava linhas de linhagem imediatas no estilo ContractForge/OpenLineage e evidências EXPLAIN USING TEXT, expõe a reconciliação atrasada de ACCESS_HISTORY por meio de API/CLI com manipulação de PENDING e aprovação nos testes Snowflake focados. A smoke mínima ao vivo escreveu 5 linhas de linhagem e 5 linhas explicativas; ACCESS_HISTORY estava acessível, mas ainda tinha 0 linhas para executar 5a8c49dc-2ccd-439e-9ae0-58bc7fcb02d0, correspondendo ao caminho pendente atrasado.
22CompleteAdicionado guia de operações docs/adapters/snowflake.md, matriz de estabilização e links atualizados de índice/documentos do adaptador.
23CompleteAdicionado docs/specs/snowflake-stabilization-matrix.md com escopo, portões de liberação e plano de desbloqueio de portão bloqueado.
24CompleteStatus de maturidade do README atualizado de "Planejamento" para "Alfa com validação real do Snowflake". Limitações conhecidas de necessidade de revisão marcadas para portas de procedimentos/tarefas bloqueadas. Testes focados foram aprovados.
25CompleteReal Snowflake executor de biblioteca de procedimento hospedado USGS GeoJSON medalhão congelado executado de bronze a ouro contra a mesma linha de base de 30 recursos usada para paridade AWS/Databricks. As contagens Snowflake foram bronze = 1, prata = 30, ouro diariamente = 2, faixas de ouro = 3 com 4 linhas de execução bem-sucedidas, 16 linhas de qualidade, sem linhas de quarentena e sem erros. As evidências de destino/execução AWS e Databricks corresponderam às quatro contagens de resultados e aos status SUCCESS/PASSED. Testes completos aprovados.

Regra de Execução

Trabalhe neste arquivo em ordem, a menos que uma dependência de bloqueio force um local trocar. Cada commit deve atualizar a tabela de status, incluir testes para sua alteração, e registre qualquer comando live-smoke que foi executado.