feat: item 9 do roadmap -- datasets (linhas de dado por cenario) #58

Merged
jhony75 merged 1 commit from feature/scenario-datasets into develop 2026-09-10 20:21:13 -03:00
Owner

Implementa o item 9 do roadmap: linhas de dado (dataset) por cenario da biblioteca.

  • ScenarioDatasetRow: rotulo + pares chave/valor de metadado, sem templating no texto dos passos (decisao explicita do usuario).
  • CRUD completo em /api/scenario-templates/{id}/dataset-rows e /api/dataset-rows/{row_id}.
  • Novo endpoint POST /api/runs/{run_id}/scenarios/from-dataset, separado do add_scenario_to_run existente (que fica intocado) -- instancia uma execucao por linha selecionada, com o rotulo no nome e dataset_row_id rastreavel.
  • Frontend: aba "Dataset" em Library (CRUD com editor de chave/valor) e checklist de linhas (todas marcadas por padrao) no picker de "Adicionar cenario" do RunDetail.
  • Migration 5625ee374efb, roundtrip testado e ja aplicada no banco de dev.

Verificacao: 199 testes de backend (9 novos), 135 testes de frontend (12 novos), tsc/lint/build/build-storybook OK, walkthrough manual completo no navegador (CRUD de linhas + instanciacao seletiva num Run real, dados de teste limpos depois).

Achado nao relacionado durante a verificacao manual (nao bloqueia este PR, ja sinalizado separadamente): GET /api/runs/{id} nao bumpa updated_at do Run quando um cenario filho muda, o que combinado com cache heuristico do navegador (por causa do header Last-Modified) pode mostrar dados desatualizados por um tempo apos um POST -- pre-existente, nao introduzido por este PR.

Implementa o item 9 do roadmap: linhas de dado (dataset) por cenario da biblioteca. - `ScenarioDatasetRow`: rotulo + pares chave/valor de metadado, sem templating no texto dos passos (decisao explicita do usuario). - CRUD completo em `/api/scenario-templates/{id}/dataset-rows` e `/api/dataset-rows/{row_id}`. - Novo endpoint `POST /api/runs/{run_id}/scenarios/from-dataset`, separado do `add_scenario_to_run` existente (que fica intocado) -- instancia uma execucao por linha selecionada, com o rotulo no nome e `dataset_row_id` rastreavel. - Frontend: aba "Dataset" em Library (CRUD com editor de chave/valor) e checklist de linhas (todas marcadas por padrao) no picker de "Adicionar cenario" do RunDetail. - Migration `5625ee374efb`, roundtrip testado e ja aplicada no banco de dev. Verificacao: 199 testes de backend (9 novos), 135 testes de frontend (12 novos), tsc/lint/build/build-storybook OK, walkthrough manual completo no navegador (CRUD de linhas + instanciacao seletiva num Run real, dados de teste limpos depois). Achado nao relacionado durante a verificacao manual (nao bloqueia este PR, ja sinalizado separadamente): `GET /api/runs/{id}` nao bumpa `updated_at` do Run quando um cenario filho muda, o que combinado com cache heuristico do navegador (por causa do header Last-Modified) pode mostrar dados desatualizados por um tempo apos um POST -- pre-existente, nao introduzido por este PR.
feat: item 9 do roadmap -- datasets (linhas de dado por cenario)
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 12s
EEG QA CI / Backend (pull_request) Successful in 2m8s
EEG QA CI / Frontend (pull_request) Successful in 2m24s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 1m58s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
56e6f5f8cc
Cada cenario da biblioteca ganha linhas de dado opcionais (rotulo +
pares chave/valor de metadado, sem templating no texto dos passos --
decisao explicita do usuario). Ao adicionar um cenario com dataset a um
Run, um checklist deixa escolher quais linhas viram execucoes
separadas (POST /api/runs/{id}/scenarios/from-dataset), cada uma
rastreavel por dataset_row_id e com o rotulo no nome -- sem alterar o
endpoint/comportamento existente de adicionar cenario avulso.
jhony75 merged commit 529de88260 into develop 2026-09-10 20:21:13 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!58
No description provided.