{"total":67,"bounded_contexts":["auth","contracts","data_catalog","data_linkage","lake","pipelines","query_studio","reporting","scheduling","sources","storage","system","validation"],"mappings":[{"cli_command":"sindri config check","rest_method":"POST","rest_path":"/api/v1/pipelines/validate","bounded_context":"system","description":"Valida sintaxe YAML e estrutura de configuracao.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/pipelines/validate"},{"cli_command":"sindri rbac deny create","rest_method":"POST","rest_path":"/api/v1/admin/capability-denies","bounded_context":"auth","description":"Nega uma capability a um subject (vence o allow da role).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/admin/capability-denies"},{"cli_command":"sindri rbac deny list","rest_method":"GET","rest_path":"/api/v1/admin/subjects/{subject_type}/{subject_id}/capability-denies","bounded_context":"auth","description":"Lista as negacoes de um subject.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/admin/subjects/{subject_type}/{subject_id}/capability-denies"},{"cli_command":"sindri rbac deny revoke","rest_method":"DELETE","rest_path":"/api/v1/admin/capability-denies/{deny_id}","bounded_context":"auth","description":"Revoga uma negacao por id.","example_curl":"curl -X DELETE -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/admin/capability-denies/{deny_id}"},{"cli_command":"sindri admin org create","rest_method":"POST","rest_path":"/api/v1/admin/organizations","bounded_context":"auth","description":"Cria uma org adicional (multi-org) com 1o admin direto (super-admin).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/admin/organizations"},{"cli_command":"sindri admin org set-domain","rest_method":"PATCH","rest_path":"/api/v1/admin/organizations/{tenant_id}/primary-domain","bounded_context":"auth","description":"Troca o dominio canonico da org (super-admin). Nao mexe no tenant_id.","example_curl":"curl -X PATCH -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/admin/organizations/{tenant_id}/primary-domain"},{"cli_command":"sindri rbac assign","rest_method":"POST","rest_path":"/api/v1/admin/users/{user_id}/roles","bounded_context":"auth","description":"Atribui role a pessoa, grupo ou conta de servico (least-privilege + audit).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/admin/users/{user_id}/roles"},{"cli_command":"sindri rbac revoke","rest_method":"DELETE","rest_path":"/api/v1/admin/users/{user_id}/roles/{role_name}","bounded_context":"auth","description":"Revoga role de pessoa, grupo ou conta de servico (audit).","example_curl":"curl -X DELETE -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/admin/users/{user_id}/roles/{role_name}"},{"cli_command":"sindri rbac roles","rest_method":"GET","rest_path":"/api/v1/admin/roles","bounded_context":"auth","description":"Lista roles disponiveis: built-in uniao custom da org.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/admin/roles"},{"cli_command":"sindri rbac whoami","rest_method":"GET","rest_path":"/api/v1/admin/users/{user_id}/roles","bounded_context":"auth","description":"Roles resolvidas de um usuario (store + inferencia de AD).","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/admin/users/{user_id}/roles"},{"cli_command":"sindri rbac service-account create","rest_method":"POST","rest_path":"/api/v1/admin/service-accounts","bounded_context":"auth","description":"Cria uma conta de servico (nasce disabled).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/admin/service-accounts"},{"cli_command":"sindri rbac service-account list","rest_method":"GET","rest_path":"/api/v1/admin/service-accounts","bounded_context":"auth","description":"Lista contas de servico da org.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/admin/service-accounts"},{"cli_command":"sindri rbac service-account disable","rest_method":"POST","rest_path":"/api/v1/admin/service-accounts/{service_account_id}/disable","bounded_context":"auth","description":"Desabilita uma conta de servico.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/admin/service-accounts/{service_account_id}/disable"},{"cli_command":"sindri contract diff","rest_method":"GET","rest_path":"/api/v1/contracts/{name}/diff","bounded_context":"contracts","description":"Compara duas versoes de um contrato.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/contracts/{name}/diff"},{"cli_command":"sindri contract validate","rest_method":"POST","rest_path":"/api/v1/contracts/{name}/versions/{version}/validate","bounded_context":"contracts","description":"Gate de CI: valida uma tabela contra um contrato registrado.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/contracts/{name}/versions/{version}/validate"},{"cli_command":"sindri contract check","rest_method":"POST","rest_path":"/api/v1/contracts/{name}/check","bounded_context":"contracts","description":"Gate de CI: bloqueia se breaking change sem major bump.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/contracts/{name}/check"},{"cli_command":"sindri contract register","rest_method":"POST","rest_path":"/api/v1/contracts/","bounded_context":"contracts","description":"Registra novo DataContract a partir de arquivo JSON.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/contracts/"},{"cli_command":"sindri contract list","rest_method":"GET","rest_path":"/api/v1/contracts/","bounded_context":"contracts","description":"Lista contratos ativos do tenant.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/contracts/"},{"cli_command":"sindri contract get","rest_method":"GET","rest_path":"/api/v1/contracts/{name}/versions/{version}","bounded_context":"contracts","description":"Exibe um contrato por nome e versao.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/contracts/{name}/versions/{version}"},{"cli_command":"sindri contract delete","rest_method":"DELETE","rest_path":"/api/v1/contracts/{name}/versions/{version}","bounded_context":"contracts","description":"Remove um contrato por nome e versao.","example_curl":"curl -X DELETE -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/contracts/{name}/versions/{version}"},{"cli_command":"sindri data-catalog export","rest_method":"GET","rest_path":"/api/v1/catalog/export","bounded_context":"data_catalog","description":"Exporta o catalogo completo (sources/objects/columns/tags/snapshots) em JSON ou NDJSON.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/catalog/export"},{"cli_command":"sindri data-catalog push","rest_method":"POST","rest_path":"/api/v1/catalog/push","bounded_context":"data_catalog","description":"Envia o catalogo ao sink externo configurado (DataHub ou OpenLineage).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/catalog/push"},{"cli_command":"sindri data-catalog search","rest_method":"GET","rest_path":"/api/v1/catalog/search","bounded_context":"data_catalog","description":"Busca full-text cross-source no catalogo (tsvector/GIN com ranking em Postgres; LIKE nos demais backends).","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/catalog/search"},{"cli_command":"sindri data-catalog sources","rest_method":"GET","rest_path":"/api/v1/catalog/sources","bounded_context":"data_catalog","description":"Lista sources registradas no catalogo.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/catalog/sources"},{"cli_command":"sindri data-catalog status","rest_method":"GET","rest_path":"/api/v1/catalog/status","bounded_context":"data_catalog","description":"Exibe status consolidado do catalogo.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/catalog/status"},{"cli_command":"sindri data-catalog sync","rest_method":"POST","rest_path":"/api/v1/catalog/refresh","bounded_context":"data_catalog","description":"Executa refresh de metadados do catalogo.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/catalog/refresh"},{"cli_command":"sindri linkage dedupe","rest_method":"POST","rest_path":"/api/v1/linkage/dedupe","bounded_context":"data_linkage","description":"Deduplica uma tabela com a mesma configuracao do step YAML.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/linkage/dedupe"},{"cli_command":"sindri linkage link","rest_method":"POST","rest_path":"/api/v1/linkage/link","bounded_context":"data_linkage","description":"Vincula registros entre duas tabelas com a mesma configuracao do step YAML.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/linkage/link"},{"cli_command":"sindri linkage report","rest_method":"POST","rest_path":"/api/v1/linkage/report","bounded_context":"data_linkage","description":"Gera reports HTML a partir de modelo salvo.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/linkage/report"},{"cli_command":"sindri lake history","rest_method":"GET","rest_path":"/api/v1/lake/history","bounded_context":"lake","description":"Mostra historico de operacoes da tabela Delta.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/lake/history"},{"cli_command":"sindri lake optimize","rest_method":"POST","rest_path":"/api/v1/lake/optimize","bounded_context":"lake","description":"Compacta small files em tabela Delta Lake.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/lake/optimize"},{"cli_command":"sindri lake vacuum","rest_method":"POST","rest_path":"/api/v1/lake/vacuum","bounded_context":"lake","description":"Remove arquivos orfaos de tabela Delta Lake.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/lake/vacuum"},{"cli_command":"sindri lake read","rest_method":"POST","rest_path":"/api/v1/lake/read","bounded_context":"lake","description":"Le dados do Data Lake via SQL.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/lake/read"},{"cli_command":"sindri lake watermark","rest_method":"GET","rest_path":"/api/v1/lake/watermark","bounded_context":"lake","description":"Consulta watermark de tabela no Data Lake.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/lake/watermark"},{"cli_command":"sindri lake maintain","rest_method":"POST","rest_path":"/api/v1/lake/maintain","bounded_context":"lake","description":"Manutencao unificada (compact/optimize/vacuum) para ducklake e delta. --format iceberg e hudi sao recusados.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/lake/maintain"},{"cli_command":"sindri lake migrate","rest_method":"POST","rest_path":"/api/v1/lake/catalog/migrate","bounded_context":"lake","description":"Upgrade de catalogo DuckLake 0.x para 1.0","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/lake/catalog/migrate"},{"cli_command":"sindri pipeline backfill run","rest_method":"POST","rest_path":"/api/v1/pipelines/backfill","bounded_context":"pipelines","description":"Executa backfill por janela temporal com paralelismo opt-in.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/pipelines/backfill"},{"cli_command":"sindri pipeline definition publish","rest_method":"POST","rest_path":"/api/v1/pipelines/definitions","bounded_context":"pipelines","description":"Publica definicao de pipeline no registro versionado do tenant.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/pipelines/definitions"},{"cli_command":"sindri pipeline definition list","rest_method":"GET","rest_path":"/api/v1/pipelines/definitions","bounded_context":"pipelines","description":"Lista definicoes de pipeline registradas do tenant.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/pipelines/definitions"},{"cli_command":"sindri pipeline definition retire","rest_method":"DELETE","rest_path":"/api/v1/pipelines/definitions/{name}","bounded_context":"pipelines","description":"Retira definicao de pipeline do registro do tenant (todas as versoes).","example_curl":"curl -X DELETE -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/pipelines/definitions/{name}"},{"cli_command":"sindri pipeline list","rest_method":"GET","rest_path":"/api/v1/pipelines","bounded_context":"pipelines","description":"Lista pipelines definidos em arquivo YAML.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/pipelines"},{"cli_command":"sindri pipeline run","rest_method":"POST","rest_path":"/api/v1/jobs/pipelines/run","bounded_context":"pipelines","description":"Executa pipeline declarativo de arquivo YAML.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/jobs/pipelines/run"},{"cli_command":"sindri pipeline dry-run","rest_method":"POST","rest_path":"/api/v1/pipelines/dry-run","bounded_context":"pipelines","description":"Simula execucao do pipeline sem modificar dados.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/pipelines/dry-run"},{"cli_command":"sindri pipeline backfill list","rest_method":"GET","rest_path":"/api/v1/pipelines/backfill","bounded_context":"pipelines","description":"Lista backfills do tenant com filtros opcionais.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/pipelines/backfill"},{"cli_command":"sindri pipeline backfill show","rest_method":"GET","rest_path":"/api/v1/pipelines/backfill/{backfill_id}","bounded_context":"pipelines","description":"Exibe status detalhado de um backfill (progresso, particoes falhadas).","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/pipelines/backfill/{backfill_id}"},{"cli_command":"sindri pipeline backfill cancel","rest_method":"DELETE","rest_path":"/api/v1/pipelines/backfill/{backfill_id}","bounded_context":"pipelines","description":"Cancela backfill em andamento (particoes em flight terminam; novas nao iniciam).","example_curl":"curl -X DELETE -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/pipelines/backfill/{backfill_id}"},{"cli_command":"sindri query-studio export-dashboard","rest_method":"GET","rest_path":"/api/v1/queries/dashboards/{dashboard_id}/export","bounded_context":"query_studio","description":"Exporta a definicao portavel de um dashboard custom do tenant.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/queries/dashboards/{dashboard_id}/export"},{"cli_command":"sindri query-studio preview","rest_method":"POST","rest_path":"/api/v1/queries/preview","bounded_context":"query_studio","description":"Executa SQL ad-hoc SEM registrar a execucao no historico.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/queries/preview"},{"cli_command":"sindri query-studio run","rest_method":"POST","rest_path":"/api/v1/queries/execute","bounded_context":"query_studio","description":"Executa SQL ad-hoc e registra a execucao no historico do tenant.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/queries/execute"},{"cli_command":"sindri query-studio history","rest_method":"GET","rest_path":"/api/v1/queries/history","bounded_context":"query_studio","description":"Lista o historico recente de queries executadas pelo tenant.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/queries/history"},{"cli_command":"sindri report-serving kpis","rest_method":"POST","rest_path":"/api/v1/report-serving/{page}/kpis","bounded_context":"reporting","description":"Resolve KPIs da pagina sob os filtros atuais (query-time).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/report-serving/{page}/kpis"},{"cli_command":"sindri report-serving describe","rest_method":"GET","rest_path":"/api/v1/report-serving/{page}/descriptor","bounded_context":"reporting","description":"Descreve a estrutura da pagina (dimensoes/medidas/capacidades do ator).","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/report-serving/{page}/descriptor"},{"cli_command":"sindri report-serving freshness","rest_method":"GET","rest_path":"/api/v1/report-serving/monitor/freshness","bounded_context":"reporting","description":"Resolve o frescor (semaforo) dos datasets servidos.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/report-serving/monitor/freshness"},{"cli_command":"sindri report-serving funnel","rest_method":"POST","rest_path":"/api/v1/report-serving/{page}/funnel","bounded_context":"reporting","description":"Resolve o funil de cards da pagina sob os filtros atuais.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/report-serving/{page}/funnel"},{"cli_command":"sindri schedule create","rest_method":"POST","rest_path":"/api/v1/schedules","bounded_context":"scheduling","description":"Cria novo schedule para pipeline (ou simula em dry-run).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/schedules"},{"cli_command":"sindri schedule list","rest_method":"GET","rest_path":"/api/v1/schedules","bounded_context":"scheduling","description":"Lista schedules do tenant.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/schedules"},{"cli_command":"sindri source discover","rest_method":"POST","rest_path":"/api/v1/agents/discover","bounded_context":"sources","description":"Descobre objetos em fonte externa via YAML config.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/agents/discover"},{"cli_command":"sindri storage discover","rest_method":"POST","rest_path":"/api/v1/storage/explore","bounded_context":"storage","description":"Descobre datasets em storage (parquet, csv, delta, etc).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/storage/explore"},{"cli_command":"sindri storage browse","rest_method":"POST","rest_path":"/api/v1/storage/browse","bounded_context":"storage","description":"Navega hierarquia de storage (diretorios e arquivos).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/storage/browse"},{"cli_command":"sindri storage upload","rest_method":"POST","rest_path":"/api/v1/artifacts/upload","bounded_context":"storage","description":"Envia arquivo para storage.","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/artifacts/upload"},{"cli_command":"sindri storage download","rest_method":"GET","rest_path":"/api/v1/storage/download","bounded_context":"storage","description":"Baixa arquivo de storage.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/storage/download"},{"cli_command":"sindri storage ls","rest_method":"GET","rest_path":"/api/v1/artifacts","bounded_context":"storage","description":"Lista arquivos em storage.","example_curl":"curl -H \"Authorization: Bearer $TOKEN\" http://localhost:8000/api/v1/artifacts"},{"cli_command":"sindri storage rm","rest_method":"DELETE","rest_path":"/api/v1/storage/files","bounded_context":"storage","description":"Remove arquivo de storage.","example_curl":"curl -X DELETE -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/storage/files"},{"cli_command":"sindri storage move","rest_method":"POST","rest_path":"/api/v1/storage/move","bounded_context":"storage","description":"Move arquivo entre paths no storage (download, upload, delete).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/storage/move"},{"cli_command":"sindri storage copy","rest_method":"POST","rest_path":"/api/v1/storage/copy","bounded_context":"storage","description":"Copia arquivo entre paths no storage (download, upload).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/storage/copy"},{"cli_command":"sindri validate cancel","rest_method":"POST","rest_path":"/api/v1/validation/cancel","bounded_context":"validation","description":"Cancela uma validation suite em andamento (run_id = nome da suite).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/validation/cancel"},{"cli_command":"sindri validate test","rest_method":"POST","rest_path":"/api/v1/validation/dbt-test","bounded_context":"validation","description":"Executa testes de dados dbt-style (not_null, unique, accepted_values, relationships).","example_curl":"curl -X POST -H \"Authorization: Bearer $TOKEN\" -H \"Content-Type: application/json\" http://localhost:8000/api/v1/validation/dbt-test"}]}