Skip to content

feat: NWB export backend (schema + handler + cronjobs)#89

Draft
tabedzki wants to merge 1 commit into
masterfrom
nwb-export-backend
Draft

feat: NWB export backend (schema + handler + cronjobs)#89
tabedzki wants to merge 1 commit into
masterfrom
nwb-export-backend

Conversation

@tabedzki

Copy link
Copy Markdown
Contributor

Summary

Introduces the NWB export pipeline that previously existed only as untracked files in a developer working tree — it had never been committed to any branch. This PR commits that backend as-is to establish a baseline.

Includes:

  • nwb_production schema: NwbExportJob, NwbExportModality, status and log tables, plus nwb_production_utils and nwb_export_enums.
  • NwbExportHandler state machine (automatic_job/nwb_export_handler.py).
  • Cronjob workers: cronjob_nwb_export.py and cronjob_nwb_export_enhanced.py.
  • nwb_export/ package (config, credentials, DANDI upload/eligibility/retry, modality service, readiness check, error capture, output validation).
  • Scripts (run_nwb_export.py, migrate_nwb_production_schema.py), demo notebook, tests/nwb_export/ suite, and specs/001-nwb-export-handler/ design docs.

Reviewer caveats

  • This code was previously uncommitted and is committed here verbatim. It may depend on other in-progress U19 changes not yet on master.
  • The handler does not yet match the deployed schema; the reconciliation lands in the stacked follow-up PR (fix: reconcile NWB export handler to deployed schema).

Part of BrainCOGS/tech_calendar_streamlit#70

🤖 Generated with Claude Code

This introduces the previously-uncommitted NWB export pipeline that had
only existed as untracked files in a developer working tree. It adds:

- nwb_production schema (NwbExportJob / NwbExportModality / status and log
  tables) plus nwb_production_utils and nwb_export_enums helpers.
- NwbExportHandler state machine (automatic_job/nwb_export_handler.py) that
  drives jobs through the export lifecycle.
- Cronjob workers (cronjob_nwb_export.py and cronjob_nwb_export_enhanced.py)
  that invoke the handler.
- The nwb_export package (config, credentials, DANDI upload/eligibility/retry,
  modality service, readiness check, error capture, output validation).
- Operational scripts (run_nwb_export.py, migrate_nwb_production_schema.py),
  a production demo notebook, the tests/nwb_export suite, and the
  specs/001-nwb-export-handler design docs.

Committed as-is to establish a baseline; schema reconciliation follows in a
stacked PR.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant