GCP Capability Parity
Status: STABLE_SUPPORTED_SURFACE
Destino do adaptador: contractforge-gcp / gcp_bigquery
Alvo de maturidade de referência: comportamento estável do adaptador Databricks e, em seguida, portas de paridade AWS/Snowflake/Fabric, quando aplicável.
Propósito
Este documento registra o que o adaptador GCP pode reivindicar hoje, o que o Google Cloud pode oferecer suporte nativo e o que permanece fora da superfície com suporte estável no escopo.
A regra central é rígida: um serviço Google Cloud com um recurso não é suficiente. ContractForge marca um recurso como estável somente depois que o adaptador preserva a semântica do contrato e registra evidências comparáveis.
Research Basis
Este passe de paridade usado:
- código do adaptador local:
adapters/gcp/src/contractforge_gcp; - local parity references:
docs/specs/platform-contract-parity.md,docs/specs/evidence-mapping-matrix.md,docs/platform-parity-tests.md; - Documentação Context7 BigQuery para trabalhos de carga, MERGE/DML, estatísticas de trabalho e metadados de segurança;
- Context7 Documentação do Google Cloud SDK / Secret Manager para planejamento de comando
gcloud secrets versions access; - documentação oficial do Google Cloud vinculada na lista de fontes.
Status Legend
| Status | Meaning |
|---|---|
IMPLEMENTED | O adaptador renderiza ou planeja esse comportamento hoje. |
PLATFORM_NATIVE | O Google Cloud possui uma primitiva nativa relevante, mas ContractForge não a mapeou totalmente. |
REVIEW_REQUIRED | A equivalência depende das escolhas de design, permissões, layout de dados, tempo de execução ou evidências de teste. |
UNSUPPORTED | O adaptador deve bloquear ou evitar o comportamento por enquanto. |
E2E_REQUIRED | O código pode existir, mas a execução e as evidências da conta real bronze-ouro ainda são necessárias. |
Reivindicação do Adaptador Atual
O adaptador GCP atual é final estável para a superfície de lote BigQuery documentada.
| Area | Reivindicação atual | Reason |
|---|---|---|
| Planejamento | IMPLEMENTED | plan_gcp_contract normaliza contratos e executa o planejador principal em relação aos recursos do gcp_bigquery. |
| Rendering | IMPLEMENTED | render_gcp_contract emite revisão BigQuery, capacidade, suporte de origem, revisão de origem redigida JSON/Markdown com caminhos de promoção da família de origem não JDBC, plano de promoção da família de origem JSON, SQL, trabalho de carga, materialização de fonte pública REST/HTTP, REST/HTTP Secret Manager autenticado artefatos de revisão/resolução de tempo de execução, planejamento de política de esquema, revisão avançada de modo de gravação, criação de qualidade de dados Dataplex além de planejamento de execução/leitura, registro de governança e planejamento de reconciliação, evidência DDL, manifesto de implantação e artefatos de manifesto de pacote. Os testes de implantação do projeto também emitem um plano de origem Google Workflows, artefato de plano de execução, artefato de leitura de evidências, pesquisa de trabalho BigQuery limitada, planejamento de novas tentativas de conector e metadados de comando de leitura opcionais para revisão. |
| Execução em tempo de execução | IMPLEMENTED bronze-to-gold smoke | As smokes reais GCS, SQL e MERGE BigQuery foram capturadas, incluindo um conjunto compacto de contratos bronze-ouro. O adaptador também expõe a execução sequencial do projeto através do mesmo tempo de execução somente de contrato. |
| Evidência escreve | IMPLEMENTED para caminhos de smoke | Os fluxos de trabalho de smoke persistem em execução, qualidade, anotação, OpenLineage neutro e evidências de registro de governança dos trabalhos BigQuery; a evidência de execução com falha é validada. A gravação/leitura de evidência de governança é validada para a intenção de governança declarada, e a leitura de reconciliação de governança sem mutação é incluída por meio da superfície de comando do adaptador. |
| Aplicação de política de acesso de linha | IMPLEMENTED para smoke de acesso à linha BigQuery | A smoke viva aplica uma política, lê-a e verifica a aplicação do principal restrito. |
| Direct column data masking | IMPLEMENTED para smoke da política de dados BigQuery V2 | O live smoke cria uma política de dados de coluna direta, anexa-a a uma coluna e verifica leituras mascaradas por meio de uma conta de serviço restrita. |
| Acesso à coluna de tags de política | IMPLEMENTED para smoke da etiqueta de política BigQuery | O live smoke cria uma etiqueta regional de taxonomia/política do Catálogo de Dados, anexa-a a uma coluna, verifica o acesso negado antes da concessão e o acesso permitido após categoryFineGrainedReader. |
| Anotações | IMPLEMENTED para BigQuery descrição smoke | O adaptador renderiza a descrição da tabela/coluna DDL e a evidência de anotação SQL; a smoke ao vivo aplica/lê as descrições por meio do INFORMATION_SCHEMA e persiste nas linhas de evidências de anotação. Tags/aspectos permanecem obrigatórios para revisão. |
| Evidência de falha na execução | IMPLEMENTED para smoke negativa viva | Um contrato de origem SQL com uma tabela ausente falha nativamente e persiste uma linha de evidência de execução FAILED com a mensagem de erro BigQuery. |
| Tags de política do Catálogo de Dados | IMPLEMENTED para acesso à coluna | Acesso à coluna de tag de política aprovado. O mascaramento apoiado por tags de política permanece fora do primeiro escopo estável. |
| Stable-final status | STABLE_SUPPORTED_SURFACE | gcp_stabilization_report() retorna stable_final: true para a superfície de lote BigQuery documentada com exclusões explícitas. |
A primeira smoke ao vivo é registrada em docs/reports/gcp-bigquery-csv-smoke.json. Ele valida uma pequena carga GCS CSV em BigQuery, persiste na execução e nas linhas de evidências de qualidade e executa uma consulta de qualidade não nula.
A smoke em formato de arquivo é gravada em docs/reports/gcp-bigquery-file-formats-smoke.json. Ele valida contratos de carga CSV, NDJSON, Parquet, Avro e ORC GCS com três linhas de saída cada, zero falhas não nulas e linhas de evidências de execução/qualidade persistentes. Eles fecham a fatia do formato de carregamento GCS, e não a paridade bronze-ouro.
A smoke upsert é registrada em docs/reports/gcp-bigquery-upsert-smoke.json. Ele valida a renderização e execução de BigQuery MERGE de coluna explícita com uma linha atualizada, uma linha inserida, três linhas de destino finais, zero falhas não nulas e linhas de evidências de execução/qualidade persistentes.
A smoke do bronze ao ouro é registrada em docs/reports/gcp-bigquery-bronze-to-gold-smoke.json. Ele valida um conjunto de contratos GCP ordenados: carga de bronze GCS, curadoria de prata SQL e agregação de ouro SQL, com verificações de contagem de linhas, verificações de qualidade e linhas de evidências de execução para cada camada.
A smoke da política de acesso à linha é registrada em docs/reports/gcp-bigquery-row-access-policy-smoke.json. Ele valida a aplicação/leitura da política de acesso à linha BigQuery e a aplicação do principal restrito na mesa prateada da smoke bronze para ouro.
A smoke da evidência de erro é registrada no docs/reports/gcp-bigquery-error-evidence-smoke.json. Ele valida que um contrato de origem SQL com falha grava uma linha de evidência de execução com falha e preserva a mensagem de erro nativa BigQuery.
Os dados da coluna direta que mascaram a smoke são registrados em docs/reports/gcp-bigquery-data-masking-smoke.json. Ele valida a criação de política de dados BigQuery V2, anexo de coluna e aplicação de leitura mascarada de principal restrito. O bloqueador anterior no docs/reports/gcp-bigquery-data-masking-blocker.json permanece como evidência histórica de um projeto não organizacional.
A smoke da etiqueta de política é registrada em docs/reports/gcp-bigquery-policy-tags-smoke.json. Ele valida a criação de tags de política/taxonomia do Catálogo de Dados, anexo de esquema BigQuery, leitura de INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, leituras de colunas protegidas negadas antes que o acesso refinado seja concedido e leituras de colunas protegidas bem-sucedidas após a concessão de roles/datacatalog.categoryFineGrainedReader. Ele também registra que as tags de política devem ser compatíveis regionalmente com o conjunto de dados BigQuery.
A smoke BigLake Iceberg é registrada em docs/reports/gcp-biglake-iceberg-smoke.json. Ele valida uma tabela Iceberg gerenciada por BigLake com suporte do Cloud Storage, criada por meio de uma conexão de recurso de nuvem BigQuery, com acréscimo, MERGE, leitura de consulta, leitura de biglakeConfiguration e objetos Iceberg metadata/ mais Parquet data/ observados. A smoke bruta do registro Iceberg é registrada em docs/reports/gcp-raw-iceberg-registration-smoke.json; ele valida contractforge-gcp source-promotion --execute --readback para um caminho gs:// Iceberg bruto com esquema explícito, registro BigLake e leitura de metadados/consulta. A declaração de origem estável permanece como leituras de tabela BigQuery/BigLake Iceberg registradas; a execução direta da consulta de caminho bruto sem registro permanece excluída.
A smoke autenticada do REST Secret Manager é registrada no docs/reports/gcp-authenticated-rest-secret-manager-smoke.json. Ele valida um contrato normal com um espaço reservado para senha {{ secret:scope/key }}, resolve o valor do Google Secret Manager apenas no tempo de execução do smoke, lê o endpoint REST protegido por meio do leitor principal compartilhado e carrega os registros materializados no BigQuery. Os relatórios gerados não contêm o valor secreto. A smoke das variantes REST/HTTP autenticadas é registrada em docs/reports/gcp-auth-rest-http-secret-manager-variants-smoke.json; ele valida fontes de token de portador rest_api, rest_api API-key, token de portador http_json e http_json API-key fontes apenas de contrato, todas resolvidas pelo Google Secret Manager em tempo de execução e carregadas no BigQuery com evidências de execução, linhagem e qualidade. O bloqueador anterior em docs/reports/gcp-auth-rest-http-secret-manager-variants-blocker.json é histórico e substituído.
As fontes públicas do HTTP A smoke do BigQuery é registrada no docs/reports/gcp-http-sources-bigquery-smoke.json. Ele valida um projeto GCP somente contratual com http_text, http_file format=text genérico, http_file format=json genérico e http_file format=csv genérico, tudo por meio do leitor HTTP de núcleo compartilhado, materialização local temporária, trabalhos de carga local BigQuery e evidências de execução/linhagem/qualidade quando declaradas. A leitura de destino após a execução mostrou 195 linhas de texto, 195 linhas de texto genérico, 1 linha JSON e 194 linhas CSV. O arquivo binário smoke HTTP é gravado em docs/reports/gcp-http-file-binary-bigquery-smoke.json; ele valida cargas de passagem http_file Avro, ORC e Parquet declaradas em relação ao BigQuery com três linhas por destino, evidência de qualidade e evidência de linhagem. O bloqueador http_text BigQuery anterior em docs/reports/gcp-http-text-bigquery-smoke-blocker.json foi agora substituído.
A decisão do escopo de streaming é registrada em docs/reports/gcp-streaming-scope-decision.json. Fontes limitadas e disponíveis agora Kafka/Event Hubs, tempo de execução Dataflow Kafka e assinaturas diretas do Pub/Sub BigQuery permanecem fora da primeira superfície padrão GCP estável. As assinaturas Pub/Sub BigQuery são nativas, mas não comprovam a semântica do ContractForge kafka_available_now. Os contratos Kafka/Event Hubs com revisão obrigatória emitem um plano de promoção Dataflow Kafka para BigQuery determinístico com parâmetros de modelo, ganchos de autenticação do Secret Manager, grupo de consumidores, localização do ponto de verificação, requisitos de evidência de deslocamento, opções de lançamento de streaming e não reivindicações para streaming contínuo. O caminho source-promotion --execute --readback de propriedade do adaptador pode iniciar esse modelo Dataflow e ler novamente a tarefa Dataflow, além do destino BigQuery e dos metadados DLQ. Uma smoke Confluente viva alcançou JOB_TYPE_STREAMING de um contrato ContractForge kafka_available_now, escreveu 12 linhas de destino, incluindo um lote ativo de 3 linhas, manteve as linhas DLQ em 0 e provou a repetição sem entrada com o mesmo grupo de consumidores/ponto de verificação, mantendo a contagem de alvos inalterada em 12; veja docs/reports/gcp-confluent-kafka-dataflow-source-promotion-smoke.json. Isso fecha o GCP-BQ-13A para o caminho do provedor Confluent/Dataflow; operações mais amplas de Pub/Sub/Event Hubs e streaming de produção permanecem no escopo da revisão.
A decisão do escopo do modo de gravação é registrada em docs/reports/gcp-write-mode-scope-decision.json. A primeira superfície GCP estável é limitada a append, overwrite e upsert de coluna explícita. hash_diff_upsert, historical e snapshot_reconcile_soft_delete permanecem com necessidade de revisão por padrão, mas a decisão de paridade de produção hash-diff agora é aceita usando evidências GCP, AWS, Snowflake e Fabric. Os modos histórico e instantâneo ainda precisam de paridade de tamanho de produção entre adaptadores além da evidência GCP/Fabric registrada antes da promoção estável. Os pacotes renderizados incluem artefatos determinísticos de revisão de modo de gravação avançado com candidato BigQuery SQL, bloqueadores e requisitos de evidência de promoção, mas esses artefatos não são declarações de tempo de execução estáveis executáveis padrão.
O planejamento da política de esquema está no escopo da primeira superfície estável. Os pacotes renderizados incluem consultas de simulação determinísticas BigQuery, dicas de aplicação e contractforge_schema_evidence DDL para políticas strict, additive_only e permissive. O tempo de execução do smoke agora tem um gancho --enforce-schema-policy opcional para fontes de tabela/visualização/SQL BigQuery e fontes de carregamento GCS de esquema declarado: ele lê INFORMATION_SCHEMA.COLUMNS de origem e destino, aplica colunas nulas aditivas para additive_only e permissive, bloqueia desvio estrito e grava evidências de esquema. O caminho anulável aditivo passou na validação BigQuery em tempo real em docs/reports/gcp-bigquery-schema-policy-smoke.json; o caminho negativo estrito passou na validação ao vivo em docs/reports/gcp-bigquery-schema-policy-strict-smoke.json; o caminho anulável permissivo passou na validação ao vivo em docs/reports/gcp-bigquery-schema-policy-permissive-smoke.json; o caminho negativo de mudança de tipo destrutivo passou na validação ao vivo em docs/reports/gcp-bigquery-schema-policy-type-change-smoke.json; o caminho de origem SQL passou na validação ao vivo em docs/reports/gcp-bigquery-schema-policy-sql-source-smoke.json; o caminho GCS/load-source passou na validação ao vivo em docs/reports/gcp-bigquery-schema-policy-gcs-source-smoke.json. A decisão de mutação de tipo é registrada em docs/reports/gcp-schema-policy-type-mutation-decision.json: a ampliação ou mutação automática do tipo BigQuery permanece necessária para revisão e bloqueada pelo caminho de tempo de execução estável.
A smoke da política de esquema é registrada em docs/reports/gcp-bigquery-schema-policy-smoke.json. Ele valida a inspeção INFORMATION_SCHEMA.COLUMNS de origem e destino, ALTER TABLE ADD COLUMN amount FLOAT64, acréscimo após a sincronização do esquema, leitura do esquema de destino e leitura da evidência do esquema.
A smoke estrita da política de esquema é registrada em docs/reports/gcp-bigquery-schema-policy-strict-smoke.json. Ele valida a inspeção INFORMATION_SCHEMA.COLUMNS de origem e destino, bloqueia um desvio aditivo no schema_policy: strict antes da execução da gravação e lê de volta uma linha de evidência do esquema FAILED com a mensagem nativa de violação estrita.
A smoke da política de esquema permissiva é registrada em docs/reports/gcp-bigquery-schema-policy-permissive-smoke.json. Ele valida a inspeção INFORMATION_SCHEMA.COLUMNS de origem e destino, ALTER TABLE ADD COLUMN amount FLOAT64, anexada após a sincronização do esquema e a leitura bem-sucedida da evidência do esquema no schema_policy: permissive.
A smoke da política de esquema de mudança de tipo é registrada em docs/reports/gcp-bigquery-schema-policy-type-change-smoke.json. Ele valida a inspeção INFORMATION_SCHEMA.COLUMNS de origem e destino, bloqueia um desvio incompatível de amount STRING para amount FLOAT64 sob schema_policy: permissive, mantém o alvo não escrito e lê de volta evidências de type_changes_json com falha.
A smoke da política de esquema de origem SQL é registrada em docs/reports/gcp-bigquery-schema-policy-sql-source-smoke.json. Ele valida a inspeção do esquema de origem SQL por meio de uma tabela de investigação de conjunto de dados de evidências de linha zero, limpeza de sonda, aplicação de coluna anulável, acréscimo após sincronização de esquema e leitura de evidência de esquema bem-sucedida.
A smoke da política de esquema de origem GCS é registrada em docs/reports/gcp-bigquery-schema-policy-gcs-source-smoke.json. Ele valida colunas de origem declaradas em um contrato de carga GCS CSV, inspeção de esquema por meio de uma sonda de carga de conjunto de dados de evidências, limpeza de sonda, aplicação de coluna anulável, carga de acréscimo após sincronização de esquema e leitura de evidência de esquema bem-sucedida.
A decisão de mutação do tipo de política de esquema é registrada em docs/reports/gcp-schema-policy-type-mutation-decision.json. Ele promove a superfície de tempo de execução da política de esquema GCP validada, ao mesmo tempo que mantém o alargamento automático ou a mutação de tipo fora do caminho estável. As alterações de tipo são registradas e bloqueadas com evidência de esquema até que um futuro caminho DDL/reescrita revisado seja certificado separadamente.
A decisão do escopo de implantação/orquestração é registrada em docs/reports/gcp-deployment-orchestration-scope-decision.json. A superfície GCP estável inclui artefatos de renderização, manifestos determinísticos de implantação de contrato único, materialização de pacote de projeto de simulação, planejamento de origem Google Workflows gerado com pesquisa de trabalho BigQuery limitada, blocos de repetição de conector e leitura determinística de evidência ampla/com escopo de execução mais consultas de limpeza, uma superfície de comando deploy-project --deploy-orchestration/--run-orchestration/--wait-orchestration/--readback-orchestration/--reset-orchestration-data/--cleanup-orchestration/--cleanup-orchestration-data de propriedade do adaptador, implantação/execução de executor gerado ao vivo, leitura de caminho de comando, lado do executor evidência de execução/qualidade/esquema, semântica de linha com falha de qualidade, ids de evidência com escopo de execução, limpeza de fluxo de trabalho, evidência de execução de falha de gravação, limpeza de alvo/evidência e execução/leitura repetida de reexecução de projeto completo. O Google Workflows é o executor de implantação do projeto GCP certificado para a superfície de lote BigQuery documentada. Cloud Run Jobs, Composer DAGs e consultas agendadas BigQuery permanecem superfícies de implantação futura.
A linhagem Dataplex e a decisão do escopo de qualidade de dados são registradas em docs/reports/gcp-dataplex-lineage-dq-scope-decision.json. As verificações de qualidade SQL e as evidências da tabela de controle BigQuery, incluindo cargas úteis de eventos OpenLineage neutras, estão no escopo da primeira superfície estável. Os pacotes renderizados incluem artefatos determinísticos de solicitação de criação do Dataplex DataScan, metadados de comando/leitura do DataScan, planejamento de publicação/leitura do Data Lineage nativo e planejamento de taxonomia/aplicação/leitura do aspecto Dataplex. O comando dataplex-quality --execute --wait --readback de propriedade do adaptador passou por uma execução do DataScan nativo em tempo real em um destino BigQuery de 10.000 linhas e leu sete linhas de resultados de regra Dataplex exportadas. O comando dataplex-lineage-aspects de propriedade do adaptador possui leitura de evento de linhagem nativa ativa e evidência de modificação/leitura de aspecto do Catálogo de Conhecimento/Dataplex em docs/reports/gcp-dataplex-lineage-aspects-smoke.json. A decisão de tempo de execução é registrada em docs/reports/gcp-dataplex-lineage-aspect-runtime-decision.json: a mutação nativa de linhagem/aspecto Dataplex tem suporte estável por meio da superfície de comando explícita, enquanto a mutação nativa automática durante cada execução do contrato permanece fora da declaração de escopo.
A decisão de escopo estável de governança é registrada em docs/reports/gcp-governance-stable-scope-decision.json. Aplicação de política de acesso de linha, mascaramento direto de dados de coluna, acesso de coluna de tag de política, descrições de tabela/coluna, artefatos de planejamento de contabilidade de governança, artefatos de planejamento de reconciliação de governança, gravação/leitura de evidência de governança para intenção de governança declarada, leitura de reconciliação de governança sem mutação e evidências de execução/qualidade/anotação/execução com falha estão no escopo. A smoke da evidência do ledger de governança é registrada no docs/reports/gcp-governance-ledger-evidence-smoke.json, a decisão de planejamento da reconciliação é registrada no docs/reports/gcp-governance-ledger-reconciliation-plan.json e a smoke do comando de reconciliação é registrada no docs/reports/gcp-governance-ledger-reconciliation-smoke.json. O mascaramento baseado em tags, o mascaramento apoiado por tags de política, o comportamento de reparo/exclusão automático e retenção de substituição permanecem excluídos da primeira superfície GCP estável.
O manifesto de evidência de superfície estável é registrado em docs/reports/gcp-stable-surface-evidence.json. É a fonte da verdade para a reivindicação stable_final=true com escopo definido e vincula os relatórios de smoke ao vivo mais os limites de revisão aceitos.
A anotação smoke é registrada em docs/reports/gcp-bigquery-annotations-smoke.json. Ele valida descrições de tabela e coluna BigQuery usando ALTER TABLE... SET OPTIONS e ALTER COLUMN... SET OPTIONS nativos, lê metadados de tabela por meio de INFORMATION_SCHEMA.TABLE_OPTIONS, lê metadados de coluna por meio de INFORMATION_SCHEMA.COLUMN_FIELD_PATHS e persiste linhas de auditoria de anotação para contractforge_annotation_evidence.
A smoke do runner Workflows é registrada em docs/reports/gcp-workflows-runner-smoke.json. Ele valida a ativação do API, a criação da identidade do serviço Workflows, a implantação do YAML gerado sem edições manuais, a execução ao vivo, a pesquisa de tarefas do BigQuery com reconhecimento de localização, a leitura de tabela bronze para ouro e a leitura de tabela de evidências DDL. A smoke de leitura do caminho de comando é registrada em docs/reports/gcp-workflows-command-readback-smoke.json; ele valida o caminho CLI de implantação/execução/espera/leitura de propriedade do adaptador, resolução executável da plataforma, execução bq SQL de linha única no Windows, --readback-location, leitura de contagem de alvo e leitura de presença de tabela de evidências. O plano de readback gerado também inclui modelos de evidências de execução/qualidade/esquema com escopo de execução; o tempo de execução os utiliza quando --workflow-execution-id é fornecido ou quando o ID de execução atual é conhecido. A smoke da evidência do runner é registrada em docs/reports/gcp-workflows-runner-evidence-smoke.json; ele valida evidências de execução do lado do executor para operações de gravação e evidências de qualidade para operações de consulta de qualidade. A smoke semântica de qualidade é registrada em docs/reports/gcp-workflows-quality-semantics-smoke.json; ele valida a leitura do resultado de qualidade, a evidência PASSED para zero linhas com falha e a evidência FAILED, além de uma execução elevada de Workflows para linhas com falha diferentes de zero. A execução run-id smoke é registrada em docs/reports/gcp-workflows-execution-runid-smoke.json; ele valida IDs de execução baseados em GOOGLE_CLOUD_WORKFLOW_EXECUTION_ID para evidências de execução bem-sucedidas, evidências de qualidade aprovadas e evidências de qualidade com falha. A evidência do esquema smoke é registrada em docs/reports/gcp-workflows-schema-evidence-smoke.json; ele valida linhas de evidência de esquema do lado Workflows do plano de política de esquema renderizado com IDs com escopo de execução. O comando de limpeza smoke é registrado em docs/reports/gcp-workflows-cleanup-command-smoke.json; ele valida --cleanup-orchestration, metadados gcloud workflows delete gerados, exclusão de recursos de fluxo de trabalho ao vivo, idempotência de fluxo de trabalho ausente e redação de e-mail. A smoke da evidência de falha de gravação é registrada em docs/reports/gcp-workflows-write-failure-evidence-smoke.json; ele valida um caminho de gravação BigQuery com falha controlada, evidência de execução FAILED com escopo de execução, error_message com falha não nula, aumento de fluxo de trabalho após persistência de evidência e limpeza de recursos de fluxo de trabalho. A smoke de limpeza de alvo/evidência é registrada em docs/reports/gcp-workflows-target-evidence-cleanup-smoke.json; ele valida deployment/gcp_workflows_cleanup_plan.json, --cleanup-orchestration-data, limpeza de alvo/evidência com escopo definido SQL e leitura de evidência ao vivo antes/depois. A smoke certificada do runner é registrada em docs/reports/gcp-workflows-certified-runner-smoke.json; ele valida o caminho CLI de redefinição/implantação/execução/espera/leitura de propriedade do adaptador duas vezes em relação ao mesmo projeto ordenado, com leitura de alvo, execução, qualidade e evidência de esquema com escopo de execução para ambas as execuções.
Capability Matrix
O classificador de origem de propriedade do adaptador é a fonte de verdade para o status de origem. Cada revisão explicitamente necessária
família de origem também é publicada como source.<name> em review_required_semantics, portanto, planejamento, fonte renderizada
revisar artefatos e capacidades públicas permanecem alinhados.
| ContractForge capability | Superfície nativa do Google Cloud | Adapter status | Parity decision |
|---|---|---|---|
source.type: table / view / sql | Tabelas BigQuery, visualizações e consultas GoogleSQL | IMPLEMENTED com smoke SQL ao vivo | Os contratos SQL participam da smoke bronze-ouro; a paridade mais ampla do contrato partilhado permanece pendente. |
| GCS files: CSV, JSON/JSONL/NDJSON, Parquet, Avro, ORC | Jobs de carregamento em lote BigQuery do Cloud Storage | IMPLEMENTED com smoke de carga GCS ao vivo | Contagens de carga em formato de arquivo e aprovação de evidências de qualidade; evolução do esquema bronze-ouro ainda pendente. |
| XML files | Nenhum formato de trabalho de carregamento direto BigQuery no escopo do adaptador atual | UNSUPPORTED | Use Dataflow/Dataproc ou transformação em estágios posteriormente. |
mode: append | BigQuery INSERT ou carregar trabalho WRITE_APPEND | Caminho de renderização IMPLEMENTED | E2E deve validar contagens e evidências de linhas. |
mode: overwrite | BigQuery CREATE OR REPLACE TABLE ou carregar trabalho WRITE_TRUNCATE | Caminho de renderização IMPLEMENTED | Deve validar o esquema, a etiqueta de política e as regras de retenção de política de linha antes da paridade de governação. |
mode: upsert | BigQuery MERGE | IMPLEMENTED para renderização de coluna explícita e smoke ao vivo | BigQuery requer atribuições de atualização explícitas; contratos sem select_columns ou source.read.columns permanecem necessários para revisão para SQL executável. A paridade de repetição bronze-ouro ainda está pendente. |
mode: hash_diff_upsert | BigQuery SQL hash functions plus MERGE | REVIEW_REQUIRED by default; production parity accepted | Primeira execução compacta de conta real, reprodução de linha alterada, reprodução sem alteração e falhas de simulação de chave de mesclagem nula/duplicada aprovadas. Evidência de sobreposição de tamanho de produção GCP mais evidências de hash-diff AWS, Snowflake e Fabric fecham GCP-BQ-12C; inverter a execução estável padrão continua sendo uma decisão do produto. |
mode: historical | BigQuery DML, acesso histórico, design de tabela temporal | REVIEW_REQUIRED fora da primeira superfície estável; artefato de revisão determinística e smoke opcional SQL renderizada | Primeira execução compacta de conta real, repetição sem alterações, expiração de expressão de exclusão e falha de rejeição tardia aprovada. Variantes mais amplas de aplicação/ignoração de chegada tardia, testes de simultaneidade e paridade de produção permanecem antes da promoção estável. |
mode: snapshot_reconcile_soft_delete | BigQuery MERGE synchronization design | REVIEW_REQUIRED fora da primeira superfície estável; artefato de revisão determinística e smoke opcional SQL renderizada | Reconciliação compacta de fonte completa, reprodução sem alterações, bloqueio de fonte incompleta, reativação de mesmo hash e exclusão de linha ausente passada. A simultaneidade e a paridade de produção permanecem antes da promoção estável. |
| Colunas obrigatórias, não nulo, chave exclusiva, qualidade da expressão | BigQuery SQL e INFORMATION_SCHEMA; Qualidade de dados Dataplex para varreduras controladas | IMPLEMENTED SQL renderizado para verificações comuns, Dataplex DataScan cria mais artefatos de planejamento de execução/leitura e smoke de leitura de execução/exportação DQ nativa | A qualidade estável do adaptador depende de verificações validadas do SQL. O caminho Dataplex nativo é uma superfície de comando opcional com tarefa DataScan ativa e evidência de leitura de exportação BigQuery. |
| Política de esquema | BigQuery INFORMATION_SCHEMA.COLUMNS, campos de esquema de trabalho de carga, ALTER TABLE ADD COLUMN revisado | Planejamento de artefato IMPLEMENTED, tabela/visualização BigQuery opcional/SQL e gancho de tempo de execução de fonte GCS de esquema declarado, smoke E2E anulável aditiva, smoke E2E negativa estrita, smoke E2E anulável permissiva, smoke negativa de mudança de tipo destrutiva, smoke de fonte SQL, smoke GCS/fonte de carga e decisão de mutação de tipo | O adaptador renderiza consultas de simulação, aplica dicas e evidências de esquema DDL. O smoke hook opcional valida a tabela/visualização/fonte SQL BigQuery e o desvio da fonte de carregamento GCS do esquema declarado, aplica colunas anuláveis aditivas/permissivas, bloqueia desvio estrito e bloqueia alterações destrutivas de tipo com evidência de esquema com falha. A ampliação ou mutação automática de tipo permanece necessária para revisão fora do caminho de tempo de execução estável. |
| Execute evidências | Estatísticas e metadados de auditoria do trabalho BigQuery API/CLI | IMPLEMENTED para caminhos de smoke | A smoke do bronze ao ouro prova linhas de evidências para cada camada; erro, gravação/leitura de evidências de governança e caminhos de reconciliação de governança sem mutação são validados. |
| Cost signal | total_slot_ms, total_bytes_billed, reservations | IMPLEMENTED para relatórios SQL de evidências de execução | A evidência de smoke captura bytes e campos de slot; contractforge-gcp cost-report renderiza o custo operacional agrupado SQL. A paridade de faturamento das exportações permanece fora da primeira superfície estável. |
| Row filters | Políticas de acesso de linha BigQuery | IMPLEMENTED para smoke ao vivo, além de planejamento de reconciliação/ledger de governança, leitura de comando e leitura de gravação de evidências | Aplicação, leitura e aplicação de principal restrito passadas para um filtro de status simples. A intenção de filtro de linha declarada grava linhas de evidências de governança no tempo de execução do smoke e governance-reconcile --execute lê o estado da política de linha nativa. A retenção de cópia/substituição e o reparo automático permanecem fora do primeiro escopo estável. |
| Column masks / PII | Políticas de dados de coluna direta BigQuery; tags de política e mascaramento de dados | IMPLEMENTED para mascaramento direto de dados, acesso a colunas de tags de política, planejamento de reconciliação/ledger de governança e leitura de gravação de evidências; mascaramento baseado em tags excluído do primeiro escopo estável | Políticas de coluna Direct V2 passadas com mascaramento ALWAYS_NULL. Tags de política do Data Catalog passadas para acesso em nível de coluna. O mascaramento apoiado por tags de política continua sendo um projeto futuro distinto se valores mascarados forem necessários. |
| Anotações | Descrições de tabela/coluna BigQuery; Catálogo de conhecimento/aspectos/tags Dataplex | IMPLEMENTED para descrições, evidências, planejamento de reconciliação/ledger de governança, leitura de gravação de evidências e execução/leitura de comando de aspecto nativo explícito | As descrições nativas da tabela/coluna BigQuery são renderizadas, transmitem leitura ao vivo e persistem evidências de anotação. Aliases, tags, PII e metadados de operações mais ricos renderizam planos de aspecto Dataplex, escrevem linhas de evidências de intenção de governança e passaram na validação explícita de dataplex-lineage-aspects --execute --readback com evidências de AspectType/modifyEntry/readback. |
| JDBC / relational sources | Consultas federadas BigQuery, Dataflow, Dataproc, conectores Cloud SQL | REVIEW_REQUIRED | Evite a expansão do dialeto JDBC por enquanto; use os contratos table/GCS/HTTP primeiro. |
| Public REST / HTTP JSON/CSV/text sources | Leitores limitados de núcleo ContractForge compartilhados mais trabalhos de carga local BigQuery | IMPLEMENTED para rest_api, http_json, http_csv limitado público/sem autenticação, http_text orientado a linha e materialização http_file de formato declarado no tempo de execução da smoke | O adaptador emite um plano de materialização de origem determinística, usa o leitor de núcleo compartilhado, grava um arquivo NDJSON/CSV local temporário ou de passagem Avro/ORC/Parquet, carrega-o no destino BigQuery declarado e persiste a mesma evidência de execução/linhagem usada pelas tarefas de carregamento GCS. http_text e http_file format=text genérico mapeiam cada linha de texto para uma coluna de string declarada. A evidência de tempo de execução local é registrada em docs/reports/gcp-http-text-materialization-local-smoke.json e docs/reports/gcp-http-file-materialization-local-smoke.json; a evidência do projeto BigQuery ao vivo para http_text, texto genérico http_file/JSON/CSV e http_file genérico Avro/ORC/Parquet está registrada em docs/reports/gcp-http-sources-bigquery-smoke.json e docs/reports/gcp-http-file-binary-bigquery-smoke.json. |
| Authenticated REST / HTTP JSON/CSV/text sources | Leitores principais compartilhados mais credenciais vinculadas ao Secret Manager | IMPLEMENTED para leituras limitadas baseadas em espaço reservado | Contratos que usam credenciais {{ secret:scope/key }} renderizam recursos do Secret Manager, IAM e metadados de comando de acesso, resolvem o segredo em tempo de execução e passam a execução autenticada ao vivo de REST, REST API-key, HTTP JSON bearer-token e HTTP JSON API-key execução através dos leitores principais compartilhados. As credenciais in-line permanecem obrigatórias para revisão para os subtipos REST, HTTP e http_file genérico. |
| Kafka bounded / available-now | Dataflow KafkaIO, Pub/Sub, BigQuery Gravação de armazenamento API | REVIEW_REQUIRED fora da primeira superfície estável | O streaming é um caminho de maturidade separado. Precisa de semântica de ponto de verificação, evidência de compensação e validação de rede/segurança antes da promoção. |
| Fontes de compartilhamento Delta e Delta | BigLake/transferência de tabela externa, Dataproc/Spark ou cópia preparada | REVIEW_REQUIRED | Os nomes canônicos dos conectores delta, delta_table e delta_share são classificados explicitamente. Os contratos com revisão obrigatória emitem um plano de materialização Spark sem servidor do Dataproc com conjunto de dependências, prefixo de destino, origem da tabela pós-materialização e requisitos de evidência, mas nenhum caminho de tempo de execução do GCP é reivindicado até que a transferência controlada seja validada. |
| Iceberg | Tabelas gerenciadas BigLake/Iceberg e acesso Spark/Iceberg | IMPLEMENTED para leituras de tabela BigQuery/BigLake registradas e smoke no modo de gravação; comando de registro de caminho bruto PASS_WITH_REVIEW_BOUNDARY | BigLake gerenciou a criação, acréscimo, MERGE e leitura de retorno da tabela Iceberg. O adaptador renderiza referências de tabelas registradas como origens BigQuery; caminhos gs:// Iceberg brutos emitem e podem executar um plano de registro BigLake com conexão, armazenamento URI, esquema explícito e leitura de metadados. A execução direta de consulta de caminho bruto sem registro permanece excluída. |
| Lineage | Cargas úteis do OpenLineage da tabela de controle BigQuery; Linhagem Dataplex/Catálogo de Dados | IMPLEMENTED para evidência de tabela de controle neutra e execução/leitura de comando nativo explícito do Data Lineage | As operações de carregamento/gravação executadas persistem cargas úteis de eventos em formato OpenLineage para tabelas de evidências BigQuery. Os planos de linhagem Dataplex nativos são renderizados a partir do mesmo contrato e aprovados na validação dataplex-lineage-aspects --execute --readback explícita. A decisão de tempo de execução estável mantém a mutação Dataplex nativa explícita em vez de automática. |
| Implantação/orquestração | Workflows, Composer, Cloud Run Jobs, Dataflow Flex Templates, BigQuery scheduled queries | IMPLEMENTED para Google Workflows; outros runners permanecem excluídos | O adaptador renderiza manifestos de implantação de contrato único, pacotes de projetos de simulação, planos de origem do Google Workflows, um artefato de plano de execução com metadados de comando de implantação/execução/espera/descrição/leitura/redefinição/limpeza de propriedade do adaptador, consultas de leitura de evidências para contagens de destino, além de evidências de execução/qualidade/esquema e consultas de limpeza de alvo/evidência com escopo definido. O Workflows YAML gerado inclui blocos de nova tentativa para chamadas do conector BigQuery: nova tentativa não idempotente para envio de trabalho e nova tentativa idempotente para pesquisa de trabalho. Ele grava evidências de execução para operações de gravação/carregamento bem-sucedidas, evidências de execução FAILED para um caminho de gravação/carregamento com falha validado, evidências de qualidade para resultados de qualidade de falha zero e de linha com falha e evidências de esquema do plano de política de esquema renderizado, com IDs de execução com escopo de execução do GOOGLE_CLOUD_WORKFLOW_EXECUTION_ID. Ele pode executar instruções de redefinição do bq pré-executadas para alvos/evidências planejadas, excluir o recurso de fluxo de trabalho gerado, tratar a limpeza do fluxo de trabalho ausente como idempotente e executar instruções de limpeza pós-executadas do bq. O executor Workflows passou na execução/leitura repetida de reexecução do projeto completo; Composer, Cloud Run Jobs e executores de consulta agendada permanecem sem reivindicações. |
Mapeamento de evidências nativas
BigQuery fornece telemetria suficiente para tornar a evidência ContractForge comparável a Databricks/AWS/Snowflake/Fabric, mas o adaptador deve implementar a ponte de tempo de execução.
| Campo de evidências ContractForge | Fonte BigQuery |
|---|---|
run_id | BigQuery job_id. |
status | Trabalho state e error_result. |
started_at_utc, finished_at_utc | Carimbos de data e hora de início/término do trabalho. |
rows_inserted, rows_updated, rows_deleted | dml_statistics.inserted_row_count, updated_row_count, deleted_row_count. |
total_bytes_processed, total_bytes_billed | BigQuery job statistics / INFORMATION_SCHEMA.JOBS*. |
total_slot_ms | BigQuery job statistics / INFORMATION_SCHEMA.JOBS*. |
row_security_applied | Metadados de segurança em nível de linha de estatísticas de trabalho, quando presentes. |
data_masking_applied | Metadados de mascaramento de dados de estatísticas de trabalho, quando presentes. |
A primeira implementação de tempo de execução grava evidências imediatamente após cada tarefa BigQuery usando o ID da tarefa e as estatísticas retornadas pelo API/CLI. Uma aprovação de nível de produção posterior pode reconciliar as mesmas linhas com visualizações INFORMATION_SCHEMA.JOBS_BY_PROJECT qualificadas por região quando campos de auditoria adicionais são necessários.
Stability Gates
Estas são as portas concretas para levar o GCP à maturidade do nível Databricks.
| Gate | Scope | Acceptance |
|---|---|---|
GCP-BQ-01 | Paridade de plano/renderização | contractforge-gcp plan/render emite artefatos determinísticos para contratos de carga de tabela, SQL e GCS, incluindo artefatos JSON/Markdown de revisão de origem redigidos com caminhos estruturados de promoção da família de origem não JDBC. |
GCP-BQ-02 | GCS file E2E | PASS para substituir contratos que carregam CSV, NDJSON, Parquet, Avro e ORC de gs:// para BigQuery com gravações de evidências. Acrescentar/reproduzir pertence à paridade bronze-ouro. |
GCP-BQ-03 | Bronze-to-gold medallion E2E | PASS para um medalhão compacto GCP BigQuery usando contratos GCS bronze, SQL prata e SQL ouro com gravações de evidências. A paridade de contrato compartilhado entre adaptadores continua sendo uma porta de paridade de plataforma mais ampla. |
GCP-BQ-04 | Upsert E2E | PASS para propagação/alteração de uma etapa de coluna explícita MERGE com estatísticas DML e gravações de evidências. A repetição idempotente pertence à paridade bronze-ouro. |
GCP-BQ-05 | Evidência | A execução e a gravação de evidências de qualidade são aprovadas para contratos únicos, formato de arquivo, upsert, bronze-ouro e smokes com falha. A gravação/leitura de evidências de governança é aprovada para a intenção de governança declarada. A reconciliação total do livro-ledger de governança está excluída da primeira superfície GCP estável. |
GCP-BQ-06 | Qualidade | Colunas obrigatórias não nulas, chave exclusiva, contagem de linhas e verificações de expressão falham/passam consistentemente com Databricks. |
GCP-BQ-07A | Planejamento de artefato de política de esquema | PASS: renderiza planos determinísticos de política de esquema BigQuery e evidências de esquema DDL para strict, additive_only e permissive. |
GCP-BQ-07B | Gancho de tempo de execução da política de esquema | PASS: a execução opt-in smoke lê esquemas de origem de tabela/visualização/SQL BigQuery, esquemas de origem de carregamento GCS de esquema declarado e INFORMATION_SCHEMA.COLUMNS de destino, aplica colunas anuláveis aditivas e grava evidências de esquema. |
GCP-BQ-07C | Aditivo de política de esquema anulável E2E | PASS: o BigQuery smoke ativo aplica amount FLOAT64, anexa linhas e lê as evidências do esquema. |
GCP-BQ-07D | Política de esquema estritamente negativo E2E | PASS: a smoke BigQuery ativa bloqueia o desvio aditivo estrito antes da execução da gravação e persiste a evidência de esquema com falha. |
GCP-BQ-07E | Política de esquema permissiva anulável E2E | PASS: live BigQuery smoke aplica amount FLOAT64, anexa linhas e lê de volta evidências de esquema permissivas. |
GCP-BQ-07F | Mudança de tipo destrutiva da política de esquema negativa E2E | PASS: a smoke do BigQuery ativo bloqueia o desvio de amount STRING para amount FLOAT64 antes da execução da gravação e persiste na evidência de alteração de tipo com falha. |
GCP-BQ-07G | Política de esquema SQL fonte E2E | PASS: o BigQuery smoke ao vivo inspeciona uma fonte SQL inline por meio de uma investigação de linha zero, aplica status STRING, anexa linhas e lê as evidências do esquema. |
GCP-BQ-07H | Política de esquema GCS origem de carregamento E2E | PASS: o BigQuery smoke ao vivo inspeciona uma fonte GCS CSV de esquema declarado por meio de uma sonda de carga, aplica status STRING, carrega linhas e lê as evidências do esquema. |
GCP-BQ-07I | Decisão de mutação do tipo de política de esquema | PASS: ampliação ou mutação automática do tipo BigQuery é necessária para revisão fora do caminho de tempo de execução estável. |
GCP-BQ-07 | Aplicação ao vivo da política de esquema | PASS_WITH_REVIEW_BOUNDARY: validado para adições anuláveis estritas/aditivas/permissivas, bloqueio de alteração de tipo, tabela, fonte SQL e inspeção de fonte GCS de esquema declarado. A mutação automática de tipo está excluída. |
GCP-BQ-08 | smoke de governança | PASS para aplicação/leitura/aplicação de política de acesso de linha BigQuery, aplicação direta de mascaramento de dados de coluna e acesso à coluna de tag de política do Catálogo de Dados. O mascaramento baseado em tags permanece fora do primeiro escopo estável. |
GCP-BQ-09 | Annotation smoke | PASS para descrições de tabelas e colunas BigQuery, além de linhas de evidências de anotação. As tags/aspectos permanecem obrigatórias para revisão até que o escopo da taxonomia de governança GCP seja decidido. |
GCP-BQ-10 | Operational cost | PASS: total_slot_ms e bytes faturados/processados são capturados como evidência, e cost-report renderiza o custo agrupado SQL com taxas fornecidas pela operadora. |
GCP-BQ-11 | Linhagem nativa | PASS_WITH_REVIEW_BOUNDARY: publicação/leitura explícita da linhagem nativa Dataplex passada para o alvo bronze-ouro por meio de dataplex-lineage-aspects; a emissão automática durante cada execução do contrato não é reivindicada. |
GCP-BQ-11A | Evidência de linhagem neutra | PASS: as operações de carga/gravação executadas persistem cargas úteis de eventos em formato OpenLineage nas tabelas de controle BigQuery. |
GCP-BQ-12 | Decisão do modo de gravação | DECIDED: mantém os modos avançados restritos à revisão por padrão; A paridade de produção hash_diff_upsert é aceita, enquanto a paridade de produção histórica e snapshot_reconcile_soft_delete ainda precisa de paridade de produção entre adaptadores antes da promoção estável. |
GCP-BQ-12B | Planejamento avançado de artefatos de revisão em modo de gravação | PASS: os pacotes renderizados incluem o candidato determinístico BigQuery SQL, bloqueadores e requisitos de evidência de promoção para hash_diff_upsert, historical e snapshot_reconcile_soft_delete, enquanto os manifestos de implantação mantêm a execução bloqueada. |
GCP-BQ-12A | smoke de repetição opcional do modo de gravação avançado | PASS_WITH_REVIEW_BOUNDARY: BigQuery compacto passa na primeira execução mais repetição sem alteração para hash_diff_upsert, historical e snapshot_reconcile_soft_delete por meio da execução explícita de --allow-review-required. A promoção estável ainda requer casos negativos, de chegada tardia, de simultaneidade e de paridade de produção. |
GCP-BQ-12C1 | Hash-diff de changed wave e smoke de prova de chave de origem | PASS_WITH_REVIEW_BOUNDARY: repetição de linha alterada hash_diff_upsert, reprodução sem alteração após alteração, falha de simulação de chave de mesclagem nula e falha de simulação de chave de mesclagem duplicada passada em BigQuery com evidência de falha. |
GCP-BQ-12C2 | Expressão de exclusão histórica e smoke rejeitada que chega tarde | PASS_WITH_REVIEW_BOUNDARY: historical expirou uma linha de origem classificada para exclusão sem inserir uma linha atual de substituição, rejeitou uma linha alterada obsoleta antes da mutação, persistiu a evidência de falha e leu novamente o estado de destino inalterado após a execução negativa. |
GCP-BQ-12C3 | Instantâneo de reativação de fonte completa e smoke de lápide | PASS_WITH_REVIEW_BOUNDARY: snapshot_reconcile_soft_delete bloqueia contratos de origem incompletos, reativa uma linha de destino de mesmo hash inativa quando o instantâneo completo a inclui, exclui de forma reversível uma linha de destino ativa ausente e reproduz com zero alterações de DML. |
GCP-BQ-12C4 | Referência de produção de hash-diff e smoke de sobreposição | PASS: um benchmark hash_diff_upsert BigQuery de 10.000 linhas passou no carregamento inicial, reprodução sem alteração, changed wave de 250 linhas, evidência de falha de chave nula/duplicada e duas execuções de contrato sobrepostas onde BigQuery serializou a primeira atualização de 200 linhas e a segunda repetição de linha zero. Evidência: docs/reports/gcp-bigquery-hashdiff-production-benchmark.json. |
GCP-BQ-12C | Paridade de produção entre adaptadores hash-diff | PASS: Existem relatórios de benchmark hash_diff_upsert de tamanho de produção GCP, AWS e Snowflake, e as evidências de superfície estável Fabric cobrem ondas iniciais/sem operação/mudança. Evidência: docs/reports/gcp-hashdiff-cross-adapter-production-parity.json. |
GCP-BQ-12C5 | Benchmark de produção histórica e instantânea | PASS_WITH_REVIEW_BOUNDARY: contratos BigQuery de 10.000 linhas passaram pela carga inicial do historical, reprodução sem alteração, onda de linha alterada, expiração de expressão de exclusão e rejeição de chegada tardia, além de carga inicial de snapshot_reconcile_soft_delete, repetição sem alteração, repetição de exclusão e reativação. Evidência: docs/reports/gcp-bigquery-advanced-write-production-benchmark.json. |
GCP-BQ-13 | Stream decision | DECIDED: exclui streaming Kafka/Event Hubs/Dataflow/Pub/Sub da primeira superfície GCP estável. Mantenha-o como um controle de maturidade separado. |
GCP-BQ-13A0 | Dataflow Superfície de comando de promoção de origem Kafka | PASS: source-promotion --execute --readback pode iniciar o comando Dataflow Kafka-to-BigQuery Flex Template renderizado, passar opções de inicialização de streaming por meio de gcloud, ler metadados de trabalho Dataflow e ler novamente contagens de saída BigQuery/tabela DLQ. |
GCP-BQ-13A | Streaming provider parity | PASS_WITH_REVIEW_BOUNDARY: o caminho do provedor Confluent/Dataflow passou pela ingestão de linhas, reconciliação zero-DLQ e reprodução sem entrada do mesmo grupo de consumidores em um projeto GCP real. A cobertura mais ampla do Pub/Sub/Event Hubs e as operações de streaming de produção permanecem no escopo da revisão. |
GCP-BQ-14 | BigLake Iceberg smoke | PASS para criação de tabela Iceberg gerenciada por BigLake registrada, acréscimo, renderização de origem de tabela MERGE e BigQuery. Os caminhos Iceberg brutos permanecem obrigatórios para revisão até que o registro seja explícito. |
GCP-BQ-15A | Planejamento de artefato do executor do projeto Workflows | PASS: deploy-project emite um plano de origem Google Workflows determinístico, manifesto, artefato de plano de execução e artefato de leitura de evidências dos contratos de projeto solicitados, incluindo sondagem jobs.get limitada e blocos de nova tentativa de conector após cada trabalho BigQuery enviado. Os manifestos de contrato único expõem execution_ready e mantêm apply_order vazio para contratos bloqueados ou com necessidade de revisão. |
GCP-BQ-15B | Workflows runner implantar/executar smoke ao vivo | PASS: um executor Workflows gerado, implantado e executado em um projeto GCP real, ordem bronze-ouro preservada, trabalhos BigQuery pesquisados com localização do trabalho e leitura de tabelas de alvo/evidência. |
GCP-BQ-15 | Decisão de implantação/orquestração | PASS_WITH_NON_WORKFLOWS_EXCLUSIONS: inclui o executor de implantação Google Workflows de propriedade do adaptador para a superfície de lote BigQuery estável; excluir trabalhos do Cloud Run, DAGs do Composer e executores de implantação de consulta agendada até serem certificados separadamente. |
GCP-BQ-15C0 | Superfície de comando do adaptador Workflows | PASS: deploy-project expõe --render-orchestration, --deploy-orchestration, --run-orchestration, --wait-orchestration, --readback-orchestration, --reset-orchestration-data, --cleanup-orchestration e --cleanup-orchestration-data para o executor Workflows gerado. |
GCP-BQ-15C1 | Planejamento de novas tentativas do conector Workflows | PASS: YAML gerado envolve jobs.insert com http.default_retry_predicate_non_idempotent e pesquisa jobs.get com http.default_retry_predicate; o runner smoke certificado exerceu o mesmo caminho de comando gerado duas vezes contra execuções ao vivo do Workflows. |
GCP-BQ-15C2 | Planejamento de leitura de evidência Workflows | PASS: deploy-project emite consultas de leitura determinísticas BigQuery para contagens de alvos, evidências de execução, evidências de qualidade, evidências de esquema e presença de tabela de evidências; a evidência certificada de nova execução tinha escopo de execução para ambas as execuções. |
GCP-BQ-15C3 | Comando de leitura de evidência Workflows | PASS: --readback-orchestration executa consultas de readback amplas ou com escopo de execução geradas com bq --format=json; --readback-location pode substituir a localização do ambiente obsoleto. Caminho de comando ao vivo e reexecução certificada são passadas para contagens de alvos, presença de tabela de evidências e evidências de execução/qualidade/esquema com escopo de execução. |
GCP-BQ-15C4 | Persistência de evidência do runner Workflows | PASS: o Workflows gerado persiste na evidência de execução após operações de gravação/carregamento bem-sucedidas e na evidência de qualidade após operações de consulta de qualidade bem-sucedidas. O runner ao vivo e a reexecução certificada do smokes lêem as linhas de execução bem-sucedidas por destino e as linhas de qualidade aprovadas por contrato. |
GCP-BQ-15C5 | Semântica de linha com falha de qualidade Workflows | PASS: o Workflows gerado lê os resultados da consulta de qualidade com googleapis.bigquery.v2.jobs.getQueryResults, registra a evidência de qualidade do PASSED para zero linhas com falha, registra a evidência do FAILED com a contagem nativa de linhas com falha quando existem falhas e, em seguida, aumenta a execução do Workflows. Uma smoke viva negativa persistiu failed_rows=1. |
GCP-BQ-15C6 | IDs de evidências com escopo de execução Workflows | PASS: o Workflows gerado inicializa o contractforge_run_id do sys.get_env("GOOGLE_CLOUD_WORKFLOW_EXECUTION_ID") e o vincula como um parâmetro de consulta BigQuery para evidências de execução e qualidade. O sucesso e o fracasso ao vivo produziram ids workflows:<execution_id>:<step>:<operation> distinguíveis. |
GCP-BQ-15C7 | Persistência de evidência de esquema Workflows | PASS: o Workflows gerado persiste linhas de evidência de esquema para contratos de política de esquema do plano de política de esquema renderizado com IDs de execução com escopo de execução. O esquema ao vivo e a reexecução certificada fumam a leitura das linhas de evidências do esquema SUCCEEDED bronze e ouro. |
GCP-BQ-15C8 | Superfície de comando de limpeza Workflows | PASS: deploy-project --cleanup-orchestration invoca o comando gcloud workflows delete gerado. A limpeza ao vivo e a reexecução certificada de smokes excluíram o fluxo de trabalho gerado; a limpeza do fluxo de trabalho ausente permanece idempotente. |
GCP-BQ-15C9 | Evidência de execução de falha de gravação Workflows | PASS: o Workflows gerado persiste na evidência de execução do FAILED para uma operação de gravação/carregamento do BigQuery com falha controlada antes de aumentar. Uma smoke ao vivo leu um run_id com falha no escopo de execução e um error_message não nulo. |
GCP-BQ-15C10 | Destino Workflows e limpeza/redefinição de evidências | PASS: deploy-project emite um deployment/gcp_workflows_cleanup_plan.json com escopo definido; --cleanup-orchestration-data executa instruções de limpeza bq geradas após uma execução, e --reset-orchestration-data executa as mesmas instruções de limpeza geradas antes de implantar/executar/esperar/leitura. A limpeza ao vivo e a reexecução certificada fumam a redefinição/limpeza do escopo validado. |
GCP-BQ-15C | Executor de implantação certificado Workflows | PASS: o caminho CLI de redefinição/implantação/execução/espera/leitura de propriedade do adaptador executou o mesmo projeto ordenado duas vezes em um projeto GCP real, com contagens de bronze/ouro esperadas, leitura de evidência de execução/qualidade/esquema com escopo de execução para ambas as execuções e limpeza de recursos de fluxo de trabalho. |
GCP-BQ-16A | Planejamento de artefato de qualidade de dados Dataplex | PASS: os pacotes renderizados incluem a solicitação de criação determinística Dataplex DataScan JSON para regras de qualidade suportadas, com regras não suportadas marcadas como necessárias para revisão dentro do artefato. |
GCP-BQ-16A1 | Planejamento de artefato de execução/leitura Dataplex | PASS: pacotes renderizados incluem metadados determinísticos DataScan create/run/get/list-jobs REST, modelos curl e leitura de exportação BigQuery SQL para revisão. |
GCP-BQ-16A2 | smoke de leitura/execução com qualidade de dados Dataplex | PASS_WITH_REVIEW_BOUNDARY: uma tarefa nativa do Dataplex DataScan foi bem-sucedida em um destino BigQuery de 10.000 linhas e exportou sete linhas de resultados de regra para BigQuery. Evidência: docs/reports/gcp-dataplex-data-quality-execution-smoke.json. |
GCP-BQ-16B0 | Planejamento de linhagem e artefato de aspecto Dataplex | PASS: pacotes renderizados incluem planos nativos determinísticos de publicação/leitura do Data Lineage e planos de taxonomia/aplicação/leitura de aspecto Dataplex de contratos normais. |
GCP-BQ-16B1 | Linhagem Dataplex e superfície de comando de aspecto | PASS: dataplex-lineage-aspects renderiza relatórios sem mutação por padrão e pode executar explicitamente publicação de linhagem, aplicação de aspecto e readback nativo de API com cobertura de cliente injetado. |
GCP-BQ-16B2 | Linhagem Dataplex e execução de aspecto/smoke de leitura | PASS_WITH_REVIEW_BOUNDARY: validação explícita de dataplex-lineage-aspects --execute --readback publicou linhagem nativa, leu eventos de linhagem com escopo de execução, criou/leu um esquema AspectType indexado, descobriu a entrada BigQuery por meio de searchEntries, aplicou aspectos com modifyEntry e leu-os de volta. Evidência: docs/reports/gcp-dataplex-lineage-aspects-smoke.json. |
GCP-BQ-16B3 | Linhagem Dataplex e decisão de tempo de execução de aspecto | PASS: a execução explícita do dataplex-lineage-aspects permanece a superfície de mutação nativa estável do Dataplex. A emissão automática de linhagem/aspecto nativo durante a execução normal do contrato permanece excluída para evitar efeitos colaterais ocultos de metadados da plataforma, acoplamento IAM/cota e alterações de nova tentativa/idempotência. Evidência: docs/reports/gcp-dataplex-lineage-aspect-runtime-decision.json. |
GCP-BQ-16 | Linhagem Dataplex e decisão de aspectos | PASS: Evidência de qualidade SQL, Dataplex criar mais artefatos de planejamento de execução/leitura, execução/leitura nativa Dataplex DQ, artefatos de planejamento de linhagem/aspecto nativos, execução/leitura de comando de linhagem/aspecto nativa explícita e decisão de escopo de tempo de execução estão no escopo. A emissão automática de linhagem/aspecto nativo durante cada execução do contrato permanece excluída. |
GCP-BQ-17A | Planejamento de artefato do ledger de governança | PASS: pacotes renderizados incluem planejamento de livro-ledger de governança determinístico JSON e evidência de governança DDL para intenção declarada de acesso/anotação. |
GCP-BQ-17B1 | smoke de gravação/leitura de evidências do ledger de governança | PASS_WITH_REVIEW_BOUNDARY: uma smoke BigQuery governada persistiu três linhas de evidências de governança para filtro de linha declarado, descrição e intenção de aspecto/tag, leu-as de volta do contractforge_governance_evidence e verificou a redação principal. Evidência: docs/reports/gcp-governance-ledger-evidence-smoke.json. |
GCP-BQ-17B2 | Planejamento de artefato de reconciliação do ledger de governança | PASS: pacotes renderizados com intenção de governança incluem um artefato de reconciliação sem mutação com estado de contrato esperado, consultas de readback BigQuery INFORMATION_SCHEMA, política de linha/dados e metadados de readback IAM API, estados de reconciliação e principais redigidos. Evidência: docs/reports/gcp-governance-ledger-reconciliation-plan.json. |
GCP-BQ-17B | Superfície de comando de reconciliação do ledger de governança | PASS_WITH_REVIEW_BOUNDARY: governance-reconcile --execute executa readback BigQuery nativo sem mutação para políticas de linha, políticas de dados, tags de política, descrições e evidências de governança ContractForge e, em seguida, compara o readback com a intenção do contrato. O reparo/exclusão automático, a certificação de retenção de substituição e os loops de aplicação permanecem no escopo da revisão. Evidência: docs/reports/gcp-governance-ledger-reconciliation-smoke.json. |
GCP-BQ-17 | Decisão de escopo estável de governança | DECIDED: inclui política de linha validada, mascaramento direto, acesso à coluna de tag de política, evidência de descrição, planejamento de reconciliação/ledger de governança, gravação/leitura de evidência de governança em tempo de execução de smoke e leitura de reconciliação sem mutação; exclui mascaramento baseado em tags, retenção de substituição e reparo/exclusão automática de governança. |
GCP-BQ-18 | Manifesto de superfície estável | PASS: docs/reports/gcp-stable-surface-evidence.json registra a superfície GCP BigQuery incluída, relatórios de validação e limites de revisão aceitos. |
GCP-BQ-19 | smoke de projeto sequencial | PASS: contractforge-gcp run-project executa contratos de ordem de execução do projeto por meio do mesmo tempo de execução do smoke BigQuery. Este não é um executor de implantação reutilizável do Google Cloud. |
GCP-BQ-20A | Materialização de fonte pública REST/HTTP | PASS: rest_api, http_json, http_csv, http_text orientado a linha e contratos http_file genéricos declarados como csv/json/texto renderizam planos de materialização de origem e são executados por meio de leitores principais, além de trabalhos de carga local BigQuery no tempo de execução do smoke. A evidência de materialização local é registrada em docs/reports/gcp-http-text-materialization-local-smoke.json e docs/reports/gcp-http-file-materialization-local-smoke.json; A evidência do projeto BigQuery ao vivo é registrada no docs/reports/gcp-http-sources-bigquery-smoke.json. |
GCP-BQ-20B | Planejamento de revisão autenticado do REST/HTTP Secret Manager | PASS: contratos REST/HTTP autenticados com espaços reservados {{ secret:scope/key }} renderizam recursos determinísticos do Secret Manager, IAM e metadados de comando de acesso. |
GCP-BQ-20D | smoke de execução autenticada do REST/HTTP Secret Manager | PASS: REST autenticado ao vivo, REST API-key, HTTP JSON bearer-token e HTTP JSON API-key contratos resolveram credenciais do Google Secret Manager em tempo de execução, leram os leitores principais compartilhados e carregaram linhas materializadas em BigQuery. Evidência: docs/reports/gcp-authenticated-rest-secret-manager-smoke.json e docs/reports/gcp-auth-rest-http-secret-manager-variants-smoke.json. O bloqueador de reautenticação gcloud anterior em docs/reports/gcp-auth-rest-http-secret-manager-variants-blocker.json foi substituído. |
GCP-BQ-20C | Planejamento de artefato de promoção da família de origem não JDBC | PASS: caminho Iceberg bruto, compartilhamento Delta/Delta, variantes de arquivo HTTP não declaradas/suportadas e fontes de revisão obrigatória de streaming emitem plano de promoção determinístico JSON com ligações, evidências e bloqueadores necessários, enquanto a maior parte da execução permanece necessária para revisão. Os caminhos Iceberg brutos emitem um plano de registro BigLake com sinalizadores bq mk, requisitos de conexão/IAM, esquema explícito, asserções de leitura e formato da tabela de origem pós-registro. As fontes de compartilhamento Delta/Delta emitem planos de materialização Spark sem servidor do Dataproc, e as fontes Kafka/Event Hubs emitem planos de promoção Dataflow Kafka-to-BigQuery com requisitos de ponto de verificação, grupo de consumidores e evidências de deslocamento. http_text orientado a linha e http_file de formato declarado foram movidos para a materialização de tempo de execução do adaptador com evidência BigQuery ao vivo para Avro/CSV/JSON/ORC/Parquet/text. |
GCP-BQ-20E | Comando de registro Iceberg BigLake bruto | PASS_WITH_REVIEW_BOUNDARY: contractforge-gcp source-promotion --execute --readback criou uma tabela BigLake Iceberg a partir de um prefixo gs:// bruto declarado com esquema explícito, leu biglakeConfiguration, verificou os campos do esquema e consultou a tabela registrada. Evidência: docs/reports/gcp-raw-iceberg-registration-smoke.json. |
Próxima ordem de implementação recomendada
- Execute contratos de paridade de tamanho de produção históricos e instantâneos em relação ao AWS/Snowflake ou a um benchmark de adaptador cruzado compartilhado antes de promover esses modos avançados.
- Expanda o streaming além do caminho validado do provedor Confluent/Dataflow somente se Pub/Sub, Event Hubs ou operações de streaming de produção de longa duração se tornarem um requisito de produto de curto prazo.
- Execute e leia superfícies de orquestração que não sejam Workflows somente se elas se tornarem requisitos do produto; o Google Workflows é o runner certificado para a superfície estável GCP.
- Mantenha a ampliação/mutação automática de tipo e a mutação nativa automática Dataplex como extensões revisadas futuras, a menos que caminhos de tempo de execução separados sejam certificados.
Portas de promoção futuras
Essas portas estão fora da superfície atual com suporte estável, mas agora são rastreadas explicitamente pelo contractforge-gcp stabilization-report.
| Gate | Scope | Evidência necessária |
|---|---|---|
GCP-BQ-12D | Paridade de produção histórica e instantânea | Aceitação de paridade de tamanho de produção entre adaptadores para contratos históricos e snapshot_reconcile_soft_delete além das evidências registradas de GCP e Fabric. |
GCP-BQ-20 | Famílias de origem expandidas | Compartilhamento Delta, execução direta do caminho Iceberg bruto sem registro, variantes de arquivo HTTP não declaradas/não suportadas e outras validações E2E da família de origem não JDBC sem código de solução alternativa. |
Non-Claims
O adaptador GCP atual ainda não reivindica:
- Paridade de tempo de execução completo no nível Databricks além do lote BigQuery com escopo definido e da superfície do executor Workflows;
- Streaming JDBC, Kafka/Event Hubs, execução direta de caminho Iceberg bruto sem registro, paridade de compartilhamento Delta ou credenciais REST/HTTP autenticadas em linha;
- paridade de governança para mascaramento baseado em tags, emissão automática de aspecto do Catálogo de Conhecimento/Dataplex, comportamento de retenção de substituição ou reparo/exclusão automática de governança;
- ampliação automática do tipo BigQuery ou mutação do tipo;
- suporte estável para exclusão reversível de histórico ou instantâneo além da evidência opcional de reprodução/preflight/benchmark de produção já registrada para execução necessária de revisão;
- emissão automática de linhagem/aspecto Dataplex nativo durante cada execução do contrato;
- paridade de implantação/orquestração ao vivo.
Sources
- Carregamento em lote BigQuery do Cloud Storage: https://docs.cloud.google.com/bigquery/docs/batch-loading-data
- BigQuery DML e
MERGE: https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax - BigQuery Standard SQL hash functions: https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/hash_functions
- Acesso a dados históricos BigQuery: https://docs.cloud.google.com/bigquery/docs/access-historical-data
- BigQuery
INFORMATION_SCHEMA.JOBS: https://docs.cloud.google.com/bigquery/docs/information-schema-jobs - Metadados de tabela e coluna BigQuery: https://docs.cloud.google.com/bigquery/docs/tables
- BigQuery
INFORMATION_SCHEMA.COLUMN_FIELD_PATHS: https://docs.cloud.google.com/bigquery/docs/information-schema-column-field-paths - BigQuery row-level security: https://docs.cloud.google.com/bigquery/docs/row-level-security-intro
- BigQuery tags de política e controle de acesso em nível de coluna: https://docs.cloud.google.com/bigquery/docs/column-level-security-intro
- Funções de controle de acesso e política de dados BigQuery: https://docs.cloud.google.com/bigquery/docs/access-control
- BigQuery Iceberg managed tables: https://docs.cloud.google.com/bigquery/docs/biglake-iceberg-tables-in-bigquery
- BigQuery Cloud SQL federated queries: https://docs.cloud.google.com/bigquery/docs/connect-to-sql
- Controle de acesso do Secret Manager: https://docs.cloud.google.com/secret-manager/docs/access-control
- Acesso à versão secreta do Secret Manager: https://docs.cloud.google.com/secret-manager/docs/access-secret-version
gcloud secrets versions access: https://docs.cloud.google.com/sdk/gcloud/reference/secrets/versions/access- Dataflow Kafka lê: https://docs.cloud.google.com/dataflow/docs/guides/read-from-kafka
- Pub/Sub BigQuery subscriptions: https://docs.cloud.google.com/pubsub/docs/bigquery
- Google Cloud Workflows: https://cloud.google.com/workflows/docs
- Google Cloud Workflows built-in environment variables: https://docs.cloud.google.com/workflows/docs/reference/environment-variables
- Conector Workflows BigQuery do Google Cloud: https://cloud.google.com/workflows/docs/reference/googleapis/bigquery/Overview
- Google Cloud Workflows retry syntax: https://docs.cloud.google.com/workflows/docs/reference/syntax/retrying
- Dataplex REST API: https://docs.cloud.google.com/dataplex/docs/reference/rest
- Data Catalog lineage: https://docs.cloud.google.com/data-catalog/docs/data-lineage
- Catálogo de conhecimento / tarefas de qualidade de dados Dataplex: https://docs.cloud.google.com/dataplex/docs/check-data-quality
- Data Lineage REST API: https://cloud.google.com/data-catalog/docs/reference/data-lineage/rest
- Dataplex Aspect resource: https://docs.cloud.google.com/dataplex/docs/reference/rest/v1/Aspect
- Dataplex modifyEntry API: https://docs.cloud.google.com/dataplex/docs/reference/rest/v1/projects.locations/modifyEntry
- Dataplex AspectTypes API: https://docs.cloud.google.com/dataplex/docs/reference/rest/v1/projects.locations.aspectTypes