Histórico de entregas

Acompanhe as mudanças públicas do app, do painel, do laboratório e das integrações YouAutoCar.

Página 20 de 23

Historico legado de IA de telemetria fica privado

A tabela telemetry_ai_history passa a ter RLS ativo e deixa de expor acesso direto pela Data API, preservando apenas service_role para arquivo legado.

SupabaseWebAndroidOperacao
Ver detalhes
  • telemetry_ai_history agora fica em default-deny para anon/authenticated.
  • Policies legadas locais e nomes vistos no snapshot remoto foram removidos pela migration.
  • Web e Android continuam sem depender de acesso direto a essa tabela; o residuo mobile permanece tratado como persistencia nao critica.

Fonte: Round 593 - telemetry AI history RLS hardening

Cache de videos DTC fica isolado por usuario

A tabela youtube_recommendations passa a ter RLS ativo e acesso limitado ao proprio usuario, com a Edge Function resolvendo o public.users.id antes de usar o cache.

SupabaseWebAndroidOperacao
Ver detalhes
  • youtube_recommendations agora permite apenas SELECT e INSERT do cache do usuario autenticado.
  • A Edge youtube_dtc_videos deixou de gravar o auth.users.id bruto e passa a resolver public.users.id.
  • anon continua sem acesso direto e service_role segue preservado para operacao interna.

Fonte: Round 592 - YouTube recommendations RLS hardening

Convites legados de equipe ficam privados

A tabela company_invites passa a ter RLS ativo e deixa de expor privilegios diretos pela Data API, preservando o fluxo atual de equipe em company_members.

SupabaseWebAndroidOperacao
Ver detalhes
  • company_invites agora fica em default-deny para anon/authenticated.
  • A policy legada admins_view_invites foi removida para evitar leitura direta por clientes.
  • O fluxo Web atual de equipe continua usando company_members, sem depender dessa tabela legada.

Fonte: Round 591 - company invites RLS hardening

Links publicos de O.S. mantem token e ganham bloqueio direto

A tabela service_order_public_links passa a ter RLS ativo e deixa de expor acesso direto pela Data API, mantendo o portal publico por token via get_public_service_order.

SupabaseWebAndroidOperacao
Ver detalhes
  • service_order_public_links agora fica em default-deny para anon/authenticated.
  • O acesso publico de cliente continua passando pela RPC get_public_service_order(token).
  • Smokes locais cobriram token valido, expirado, inativo e inexistente.

Fonte: Round 590 - service order public links RLS hardening

Links legados de O.S. ficam privados

A tabela legada service_order_links passa a ter RLS ativo e deixa de expor privilegios diretos pela Data API, sem alterar os links publicos por token nem os vinculos diagnosticos vivos.

SupabaseWebAndroidOperacao
Ver detalhes
  • service_order_links agora fica em default-deny para anon/authenticated.
  • O contrato vivo de diagnostico continua em service_order_diagnostic_links.
  • Links publicos de cliente continuam separados em service_order_public_links e get_public_service_order.

Fonte: Round 589 - legacy service order links RLS hardening

Compatibilidade de pecas fica privada na Data API

A tabela product_applications passa a ter RLS ativo e deixa de expor privilegios diretos para clientes, preservando a busca Web pelo RPC do catalogo.

SupabaseWebAndroidOperacao
Ver detalhes
  • product_applications agora fica em default-deny para anon/authenticated.
  • A busca de pecas no Web continua usando search_products_google_like como contrato publico do catalogo.
  • O advisory local de tabelas publicas sem RLS caiu de 22 para 21.

Fonte: Round 588 - product applications RLS hardening

Ajustes financeiros legados da O.S. ficam privados

A tabela legada service_order_financials passa a ter RLS ativo e deixa de expor privilegios residuais pela Data API.

SupabaseWebAndroidOperacao
Ver detalhes
  • service_order_financials agora fica em default-deny para anon/authenticated.
  • O service_role segue preservado para compatibilidade historica e rotinas internas.
  • Os fluxos atuais de pagamentos e acertos da O.S. continuam usando os_payments e financial_transactions.

Fonte: Round 587 - legacy service order financials RLS hardening

Arquivos legados de consulta de placa ficam privados

As tabelas legadas placa_consultas, placa_consulta_extra, placa_consulta_fipe, placa_consulta_lista_modelo e plate_cache passam a ter RLS ativo e deixam de expor acesso direto pela Data API.

SupabaseWebAndroidOperacao
Ver detalhes
  • As tabelas legadas de consulta/cache de placa agora ficam em default-deny para anon/authenticated.
  • A policy legada Consolidated Manage Placa Consultas foi removida para evitar reexposicao acidental.
  • O fluxo Web/Android continua usando a Edge Function plate_lookup e a tabela vehicles, sem acesso direto a esses arquivos legados.

Fonte: Round 586 - legacy plate lookup archive RLS hardening

Arquivos legados DTC/OBD ficam privados

As tabelas dtc_read_sessions, dtc_codes e obd_snapshots passam a ter RLS ativo e deixam de expor policies legadas FOR ALL.

SupabaseWebAndroidOperacao
Ver detalhes
  • dtc_read_sessions, dtc_codes e obd_snapshots agora ficam em default-deny para anon/authenticated.
  • As policies legadas Consolidated Manage foram removidas para evitar reexposicao acidental.
  • O runtime Web/Android continua usando os contratos canonicos de diagnostico, parsed_scan_data, O.S. e evidencias.

Fonte: Round 585 - legacy DTC/OBD archive RLS hardening

Catalogo legado de roles fica privado

A tabela roles passa a ter RLS ativo e deixa de expor privilegios residuais pela Data API, preservando os helpers internos de permissao.

SupabaseWebAndroidOperacao
Ver detalhes
  • roles agora fica em default-deny para acesso direto de anon/authenticated.
  • O service_role e os helpers SECURITY DEFINER continuam preservando os fluxos internos de permissao.
  • O contrato multi-role canonico continua em user_role_assignments e role_permissions.

Fonte: Round 584 - legacy roles catalog RLS hardening

Settings legados e arquivo DTC IA ficam privados

As tabelas app_settings, settings e dtc_ai_analyses passam a ter RLS ativo e deixam de expor privilegios residuais pela Data API.

SupabaseWebAndroidOperacao
Ver detalhes
  • app_settings fica privada para acesso direto, preservando as RPCs de contrato backend.
  • settings e dtc_ai_analyses deixam de herdar privilegios residuais de anon/authenticated.
  • O fluxo Web/Android de analise DTC continua usando a Edge Function analisar-dtc e fallback local.

Fonte: Round 583 - legacy settings and DTC AI table RLS hardening

Tabelas internas legadas ficam privadas na Data API

As tabelas alert_configurations, financial_categories e user_role_audit passam a ter RLS ativo e deixam de expor privilegios residuais de anon/authenticated.

SupabaseOperacao
Ver detalhes
  • Tabelas internas sem contrato Web/Android confirmado agora ficam em default-deny por RLS.
  • Privilegios residuais como TRUNCATE, REFERENCES e TRIGGER foram removidos de anon/authenticated.
  • Operacoes internas seguem preservadas pelo service_role e pelos triggers/funcoes de banco.

Fonte: Round 582 - legacy internal public tables RLS hardening

Perfil TPMS fica limitado a leitura e salvamento

A tabela vehicle_tpms_profiles passa a expor apenas leitura e upsert autenticados, removendo privilegios antigos de exclusao direta sem mudar a configuracao Web/Android.

SupabaseWebAndroidOperacao
Ver detalhes
  • A policy ampla FOR ALL foi separada em SELECT, INSERT e UPDATE com escopo por veiculo, dono ou oficina.
  • Privilegios antigos de DELETE, TRUNCATE, REFERENCES e TRIGGER foram removidos de anon/authenticated.
  • Web e Android continuam usando o mesmo contrato de selecionar, salvar e limpar logicamente o perfil TPMS por upsert.

Fonte: Round 581 - vehicle TPMS profile RLS hardening

Fotos legadas da O.S. ficam privadas na Data API

A tabela legada os_photos passa a ter RLS ativo e perde privilegios diretos de anon/authenticated, mantendo leitura interna pelo contexto do Copilot.

SupabaseWebAndroidOperacao
Ver detalhes
  • os_photos agora fica em default-deny por RLS no schema public.
  • Privilegios antigos de anon/authenticated, incluindo TRUNCATE, foram revogados da tabela legada.
  • O contrato principal de fotos/evidencias continua em os_attachments e diagnostic_evidence para Web e Android.

Fonte: Round 580 - legacy service order photos RLS hardening

Checklist e sintomas da O.S. ficam restritos por oficina

As tabelas operacionais de checklist e sintomas da ordem de servico passam a aplicar RLS localmente, usando o escopo da O.S. e da empresa vinculada.

SupabaseWebAndroidOperacao
Ver detalhes
  • os_checklist_items agora tem RLS ativo e policies explicitas para leitura, criacao, atualizacao e remocao por empresa.
  • os_symptoms ganhou o mesmo escopo de RLS usado pelas tabelas irmas de O.S., reduzindo exposicao via Data API.
  • A remocao fica restrita ao helper administrativo is_admin(), mantendo o escopo da empresa vinculada a O.S.

Fonte: Round 579 - service order checklist and symptoms RLS hardening

Storage de anexos fica restrito por oficina ou O.S.

Os buckets privados de anexos, laudos de scanner e evidencias diagnosticas deixam de aceitar qualquer usuario autenticado e passam a validar escopo por empresa ou ordem de servico.

SupabaseWebAndroidOperacao
Ver detalhes
  • Policies de os-attachments e diagnostic-evidence passam a validar o id da O.S. no caminho do arquivo.
  • Policies de scan-reports passam a validar o prefixo company_id e preservam leitura/remocao de arquivos antigos vinculados em uploaded_scan_reports.
  • Remocoes de anexos no Web e Android agora apagam o arquivo antes do registro que autoriza a policy, evitando sobras silenciosas.
  • O upload standalone de PDF no Web agora grava em company_id/pdf_uploads para seguir o novo contrato de Storage.

Fonte: Round 578 - service order storage policy hardening

Health Score usa a empresa do veiculo

O calculo de saude do veiculo passa a usar vehicles.company_id como fonte principal de tenant antes dos fallbacks legados.

SupabaseOperacao
Ver detalhes
  • compute-vehicle-health deixa de deduzir tenant primeiro pelo dono ou pela ultima O.S.
  • Veiculos com company_id preenchido gravam snapshots e sugestoes na oficina canonica do proprio veiculo.
  • Fallback por membership do owner e ultima O.S. permanece apenas para dados antigos sem company_id.

Fonte: Round 576 - compute-vehicle-health tenant source

Health Score bloqueia recomputacao fora de escopo

A Edge Function de saude do veiculo separa chamada manual e lote interno para evitar recomputacao privilegiada sem veiculo autorizado.

SupabaseWebOperacao
Ver detalhes
  • Chamadas manuais agora exigem vehicle_id valido e verificam se o JWT do usuario enxerga o veiculo sob RLS antes de usar service_role.
  • Corpo JSON invalido ou chamada manual sem vehicle_id retorna erro em vez de cair no processamento em lote.
  • Processamento em lote fica reservado a chamada cron explicita com segredo interno.

Fonte: Round 575 - compute-vehicle-health manual auth guard

Diagnostico assistido usa servico para contexto DTC

A tela Web de diagnostico assistido reduz acesso direto ao banco na UI e passa a buscar DTCs e sessoes vinculadas pelo servico diagnostico.

WebOperacao
Ver detalhes
  • AssistedDiagnosisPanel deixou de consultar service_orders e service_order_diagnostic_links diretamente.
  • DiagnosticService agora encapsula a leitura dos DTCs da O.S. e reaproveita o helper de sessoes diagnosticas vinculadas.
  • A validacao cobriu teste Web focado, TypeScript, release notes e disponibilidade do tablet via ADB.

Fonte: Round 574 - Assisted diagnosis DTC service boundary

Health Score registra corpo invalido da Edge

A Edge Function de saude do veiculo deixa de engolir corpo JSON invalido em silencio e passa a registrar aviso estruturado para suporte.

SupabaseOperacao
Ver detalhes
  • compute-vehicle-health agora registra Invalid JSON body ignored for compute request com mensagem de erro sanitizada.
  • O tratamento externo de erro foi tipado para evitar acesso inseguro a error.message em catch unknown.
  • A validacao local cobriu Deno check da Edge, TypeScript Web, release notes e disponibilidade do tablet via ADB.

Fonte: Round 573 - compute-vehicle-health JSON observability