Conversation
- add authenticated BackendClient with service URL resolution and auth header injection - add login/logout/whoami commands and unify publish/search auth flows - add backend/stream subcommand auth callbacks and authenticated client routing - migrate agent/skill handlers and standalone publish CLI to authenticated backend path - deprecate legacy submit_submission path while keeping backward compatibility - add focused tests for backend auth routing and auth lifecycle commands - update v2-review.md with phase completion and verification
… submission model - Add normalize_data_source() to convert Globus File Manager URLs and data.materialsdatafacility.org URLs to canonical globus:// URIs - Update resolve_data_sources() to normalize URLs and handle stream:// pass-through - Add standalone DataCite test minting script (examples/test_datacite_mint.py) - Add demo scripts for full lifecycle and staging Globus integration - Extend submission model and backend client for v2 API compatibility Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…refix 10.23677) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add test_submission_normalize.py: 14 tests for normalize_data_source() and resolve_data_sources() covering Globus File Manager URLs, MDF data domain, passthrough cases, and encoded paths - Add test_staging_e2e.py: full submit → approve → publish E2E test against deployed staging backend Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tests the full version lifecycle against deployed staging: - v1.0 with mint_doi=True (dataset DOI) - v1.1 with mint_doi=False (inherit, update metadata) - v1.2 with mint_doi=True (version-specific DOI) - Queries DataCite test API for relationship metadata - Prints pass/fail assertions for post-implementation verification Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add `domains` (List[str]) for scientific domain categorization and external import provenance fields (external_doi, external_url, external_source) for datasets imported from other repositories. Wired through ManifestConfig → to_metadata_payload() → Submission → to_payload(). Includes 12 unit tests and an E2E staging test script. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix test_domains_external_e2e.py to read fields from dataset_mdata (not top-level submission). Add domains/external import coverage to test_staging_search_e2e.py with full pipeline verification (submit → approve → publish → search index). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update v2-review.md with Part II+III implementation details (BackendClient sync, curation/preview methods, confidential client auth, skill handlers). Add check_search_index.py example. Add .DS_Store to .gitignore. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cover install, CLI commands (auth, publish, stream, backend, search), Python SDK usage, auth resolution, service targeting, and connection to the backend. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
mdf_agentpackage: full Python client + CLI for the MDF Connect v2 backendBackendClient.authenticated()with multi-path auth resolution: explicit token → confidential client credentials → dev user → interactive Globus OAuthmdf login/logout/whoami,mdf publish,mdf backend *,mdf stream *,mdf searchcuration-pending,curation-detail,curation-approve,curation-rejectmdf_forge/mdf_connect_clientcode preserved inlegacy/Key files
src/mdf_agent/core/backend_client.pysrc/mdf_agent/cli/main.pysrc/mdf_agent/cli/backend.pysrc/mdf_agent/cli/stream.pysrc/mdf_agent/skill/handlers.pysrc/mdf_agent/auth/globus.pyTest plan
python -m pytest tests/ -v— all client tests passmdf login --service prod— interactive Globus auth worksmdf backend health --service staging— staging health checkexamples/test_staging_e2e.py🤖 Generated with Claude Code