diracx 0.0.6__tar.gz → 0.0.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- diracx-0.0.8/.github/scripts/collect-k8s-debug-info.sh +122 -0
- {diracx-0.0.6 → diracx-0.0.8}/.github/workflows/deployment.yml +2 -0
- {diracx-0.0.6 → diracx-0.0.8}/.github/workflows/generate_pixi_tasks_doc.py +2 -0
- {diracx-0.0.6 → diracx-0.0.8}/.github/workflows/integration.yml +2 -0
- {diracx-0.0.6 → diracx-0.0.8}/.github/workflows/main.yml +12 -25
- {diracx-0.0.6 → diracx-0.0.8}/.github/workflows/update_chart_version.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/.gitignore +4 -0
- {diracx-0.0.6 → diracx-0.0.8}/.pre-commit-config.yaml +30 -15
- diracx-0.0.8/CHANGELOG.md +111 -0
- {diracx-0.0.6 → diracx-0.0.8}/PKG-INFO +1 -1
- diracx-0.0.8/diracx-cli/src/diracx/cli/__init__.py +36 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/internal/legacy.py +6 -6
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/jobs.py +5 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/aio/operations/_operations.py +33 -18
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/operations/_operations.py +33 -18
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/auth/aio.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/client/common.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/jobs/common.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/utils.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/tests/test_auth.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/config/schema.py +138 -9
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/config/sources.py +22 -21
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/extensions.py +20 -4
- diracx-0.0.8/diracx-core/src/diracx/core/models/__init__.py +12 -0
- diracx-0.0.8/diracx-core/src/diracx/core/models/auth.py +102 -0
- diracx-0.0.6/diracx-core/src/diracx/core/models.py → diracx-0.0.8/diracx-core/src/diracx/core/models/job.py +15 -197
- diracx-0.0.8/diracx-core/src/diracx/core/models/replica_map.py +211 -0
- diracx-0.0.8/diracx-core/src/diracx/core/models/sandbox.py +37 -0
- diracx-0.0.8/diracx-core/src/diracx/core/models/search.py +61 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/preferences.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/properties.py +1 -3
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/resources.py +2 -2
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/s3.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/settings.py +99 -10
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/utils.py +38 -15
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/tests/test_config_source.py +28 -4
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/tests/test_entry_points.py +4 -2
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/tests/test_extensions.py +3 -2
- diracx-0.0.8/diracx-core/tests/test_replica_map.py +392 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/tests/test_s3.py +3 -3
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/tests/test_utils.py +118 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/os/utils.py +12 -15
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/auth/db.py +10 -6
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/auth/schema.py +6 -6
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/dummy/db.py +1 -2
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/job/db.py +6 -4
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/job_logging/db.py +6 -4
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/job_logging/schema.py +7 -4
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/sandbox_metadata/db.py +47 -49
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/utils/base.py +7 -6
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/auth/test_refresh_token.py +9 -6
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/jobs/test_job_db.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/jobs/test_job_logging_db.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/jobs/test_sandbox_metadata.py +2 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/opensearch/test_connection.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/opensearch/test_search.py +87 -174
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/auth/authorize_code_flow.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/auth/device_flow.py +3 -5
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/auth/management.py +5 -4
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/auth/token.py +2 -2
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/auth/utils.py +5 -3
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/auth/well_known.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/jobs/query.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/jobs/sandboxes.py +65 -32
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/jobs/status.py +3 -3
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/jobs/submission.py +2 -2
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/jobs/utils.py +2 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/task_queues/priority.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/tests/jobs/test_sandboxes.py +4 -5
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/tests/jobs/test_status.py +3 -2
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/pyproject.toml +3 -3
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/access_policies.py +15 -13
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/auth/authorize_code_flow.py +1 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/auth/device_flow.py +6 -5
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/auth/management.py +7 -3
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/auth/token.py +2 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/auth/well_known.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/factory.py +15 -14
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/health/probes.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/jobs/access_policies.py +4 -2
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/jobs/query.py +7 -4
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/jobs/sandboxes.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/jobs/status.py +2 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/jobs/submission.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/otel.py +1 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/utils/users.py +3 -2
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/auth/test_standard.py +18 -6
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/jobs/test_query.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/jobs/test_status.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/test_policy.py +5 -4
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/pyproject.toml +2 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/entrypoints.py +3 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/mock_osdb.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/osdb.py +63 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/utils.py +10 -10
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/explanations/configuration.md +7 -0
- diracx-0.0.8/docs/admin/reference/env-variables.md +173 -0
- diracx-0.0.8/docs/admin/reference/env-variables.md.j2 +11 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/components/api.md +2 -1
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/components/cli.md +3 -2
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/components/routes.md +22 -10
- diracx-0.0.8/docs/dev/explanations/documentation-system.md +115 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/coding-conventions.md +4 -2
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/dependency-injection.md +1 -1
- diracx-0.0.8/docs/dev/reference/env-variables.md +16 -0
- diracx-0.0.8/docs/dev/reference/env-variables.md.j2 +7 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/pixi-tasks.md +4 -0
- diracx-0.0.8/docs/templates/_render_class.jinja +40 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/operations/_operations.py +33 -18
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/operations/_operations.py +33 -18
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/src/gubbins/core/models.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/pyproject.toml +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/tests/test_gubbins_job_manager.py +1 -1
- {diracx-0.0.6 → diracx-0.0.8}/mkdocs.yml +1 -0
- {diracx-0.0.6 → diracx-0.0.8}/pixi.toml +18 -1
- diracx-0.0.8/pyproject.toml +174 -0
- diracx-0.0.8/scripts/generate_settings_docs.py +440 -0
- {diracx-0.0.6 → diracx-0.0.8}/tests/make_token_local.py +1 -1
- diracx-0.0.6/CHANGELOG.md +0 -70
- diracx-0.0.6/diracx-cli/src/diracx/cli/__init__.py +0 -31
- diracx-0.0.6/docs/admin/reference/env-variables.md +0 -39
- diracx-0.0.6/docs/dev/reference/env-variables.md +0 -5
- diracx-0.0.6/pyproject.toml +0 -182
- {diracx-0.0.6 → diracx-0.0.8}/.coveragerc +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/.gitattributes +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/.github/dependabot.yml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/.github/workflows/release-please.yml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/.github/workflows/update_security_txt_expiry.yml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/.github/workflows/vulnerabilities.yml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/.readthedocs.yaml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/LICENSE +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/MANIFEST.in +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/codecov.yml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/containers/client/Dockerfile +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/containers/services/Dockerfile +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-api/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-api/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-api/src/diracx/api/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-api/src/diracx/api/jobs.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-api/src/diracx/api/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-api/src/diracx/api/utils.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-api/tests/test_jobs.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-api/tests/test_utils.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/__main__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/auth.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/config.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/internal/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/internal/config.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/src/diracx/cli/utils.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/legacy/cs_sync/integration_test.cfg +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/legacy/cs_sync/integration_test.yaml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/legacy/cs_sync/integration_test_buggy.cfg +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/legacy/cs_sync/integration_test_secret.cfg +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/legacy/cs_sync/test_cssync.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/legacy/test_legacy.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/test_internal.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/test_jobs.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-cli/tests/test_login.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/_diracx_client_importer.pth +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/_client_importer.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/_client.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/_configuration.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/_serialization.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/_utils/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/_utils/serialization.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/_utils/utils.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/_vendor.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/aio/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/aio/_client.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/aio/_configuration.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/aio/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/aio/_vendor.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/aio/operations/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/aio/operations/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/models/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/models/_enums.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/models/_models.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/models/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/operations/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/operations/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/_generated/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/aio.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/models.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/auth/common.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/auth/sync.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/client/aio.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/client/sync.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/jobs/aio.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/patches/jobs/sync.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-client/src/diracx/client/sync.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/config/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/exceptions.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/src/diracx/core/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/tests/test_resources.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/tests/test_schema_legacy_adaptor.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-core/tests/test_secrets.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/__main__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/exceptions.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/os/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/os/job_parameters.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/auth/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/dummy/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/dummy/schema.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/job/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/job/schema.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/job_logging/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/pilot_agents/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/pilot_agents/db.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/pilot_agents/schema.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/sandbox_metadata/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/sandbox_metadata/schema.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/task_queue/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/task_queue/db.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/task_queue/schema.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/utils/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/utils/functions.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/src/diracx/db/sql/utils/types.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/auth/test_authorization_flow.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/auth/test_device_flow.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/opensearch/test_index_template.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/pilot_agents/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/pilot_agents/test_pilot_agents_db.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/test_dummy_db.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/test_freeze_time.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-db/tests/utils/test_uuid.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/__main__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/auth/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/jobs/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-logic/src/diracx/logic/task_queues/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/auth/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/auth/utils.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/configuration.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/dependencies.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/fastapi_classes.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/health/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/jobs/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/jobs/legacy.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/src/diracx/routers/utils/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/auth/test_legacy_exchange.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/data/idp-server.invalid/.well-known/openid-configuration +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/health/test_probes.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/jobs/conftest.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/jobs/test_sandboxes.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/jobs/test_wms_access_policy.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/test_config_manager.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-routers/tests/test_generic.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/__main__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/client_generation.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/client_generation_pytest.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/dummy_osdb.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/routers.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/scripts/collect_demo_coverage.sh +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/diracx-testing/src/diracx/testing/time.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/SECURITY.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/explanations/auth-with-diracx.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/explanations/auth-with-external.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/explanations/opentelemetry.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/explanations/sandbox-store.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/explanations/user-management.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/how-to/install/connect.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/how-to/install/convert-cs.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/how-to/install/embracing.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/how-to/install/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/how-to/install/minimal-requirements.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/how-to/install/register-a-vo.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/how-to/install/register-the-admin-vo.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/reference/security_model.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/reference/settings-and-preferences.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/admin/tutorials/authentication.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/css/extra.css +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/css/fontawesome-all.min.css +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/css/images/arrow.svg +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/css/images/overlay.png +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/css/main.css +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/home.html +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/images/diracx-logo-square.svg +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/images/logo.svg +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/styles/extra.css +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/webfonts/fa-brands-400.woff2 +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/assets/webfonts/fa-solid-900.woff +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/components/client.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/components/db.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/components/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/designing-functionality.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/extensions.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/explanations/testing.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/add-a-cli-command.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/add-a-db.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/add-a-route.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/add-a-setting.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/add-a-task.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/add-a-test.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/add-functionality/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/client-customization.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/client-extension.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/client-generation.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/contribute.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/develop-legacy-dirac.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/extend-diracx/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/use-the-demo/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/use-the-demo/swagger.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/how-to/use-the-demo/web.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/application-state.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/client-metapathfinder.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/configuration.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/db-transaction-model.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/entrypoints.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/security-policies.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/security-properties.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/test-recipes.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/reference/writing-tests.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/tutorials/advanced-tutorial.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/tutorials/develop-web.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/tutorials/getting-started.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/tutorials/larger-developments.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/tutorials/making-changes.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/tutorials/play-with-auth.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/tutorials/run-locally.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/dev/tutorials/write-docs.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/overrides/main.html +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/roadmap.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/user/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/user/reference/client-configuration.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/user/reference/known-installations.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/user/reference/programmatic-usage/command-line-interface.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/user/reference/programmatic-usage/https-interface.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/user/reference/programmatic-usage/index.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/user/reference/programmatic-usage/python-interface.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/docs/user/tutorials/getting-started.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/containers/client/Dockerfile +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/containers/services/Dockerfile +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/.github/workflows/main.yml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-api/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-api/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-api/src/gubbins/api/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-api/src/gubbins/api/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-api/tests/test_gubbins_api.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-cli/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-cli/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-cli/src/gubbins/cli/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-cli/src/gubbins/cli/config.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-cli/src/gubbins/cli/lollygag.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-cli/src/gubbins/cli/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-cli/tests/test_gubbins_cli.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_client.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_configuration.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_serialization.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_utils/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_utils/serialization.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_utils/utils.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_vendor.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/_client.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/_configuration.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/_vendor.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/operations/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/operations/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/models/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/models/_enums.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/models/_models.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/operations/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/operations/_patch.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/aio.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/models.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/src/gubbins/client/sync.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-client/tests/test_gubbins_client.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/src/gubbins/core/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/src/gubbins/core/config/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/src/gubbins/core/config/schema.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/src/gubbins/core/properties.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/src/gubbins/core/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/tests/test_config.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-core/tests/test_properties.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/jobs/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/jobs/db.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/jobs/schema.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/lollygag/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/lollygag/db.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/lollygag/schema.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/tests/test_gubbins_job_db.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-db/tests/test_lollygag_db.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/src/gubbins/logic/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/src/gubbins/logic/auth/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/src/gubbins/logic/auth/well_known.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/src/gubbins/logic/lollygag/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/src/gubbins/logic/lollygag/lollygag.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/src/gubbins/logic/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-logic/tests/test_gubbins_logic.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/src/gubbins/routers/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/src/gubbins/routers/dependencies.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/src/gubbins/routers/lollygag/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/src/gubbins/routers/lollygag/access_policy.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/src/gubbins/routers/lollygag/lollygag.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/src/gubbins/routers/py.typed +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/src/gubbins/routers/well_known.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/tests/data/idp-server.invalid/.well-known/openid-configuration +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/tests/test_lollybag.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-routers/tests/test_wellknown.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-testing/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-testing/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/gubbins-testing/src/gubbins/testing/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/pixi.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/pyproject.toml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins/release.notes +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins-charts/.gitignore +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins-charts/Chart.yaml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins-charts/README.md +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins-charts/values.yaml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/extensions/gubbins_values.yaml +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/run_local.sh +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/tests/__init__.py +0 -0
- {diracx-0.0.6 → diracx-0.0.8}/tests/test_generic.py +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Collect Kubernetes debug information with GitHub Actions formatting
|
|
3
|
+
# Usage: collect-k8s-debug-info.sh <demo_dir> [service_prefix]
|
|
4
|
+
# demo_dir: Path to demo directory containing kube.conf
|
|
5
|
+
# service_prefix: Pod name prefix for main services (default: diracx)
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
DEMO_DIR="${1:?Usage: $0 <demo_dir> [service_prefix]}"
|
|
10
|
+
SERVICE_PREFIX="${2:-diracx}"
|
|
11
|
+
|
|
12
|
+
export KUBECONFIG="${DEMO_DIR}/kube.conf"
|
|
13
|
+
export PATH="${DEMO_DIR}:$PATH"
|
|
14
|
+
|
|
15
|
+
INFRA_PODS="(dex|minio|mysql|rabbitmq|opensearch)"
|
|
16
|
+
|
|
17
|
+
# Function to output all info for a single pod
|
|
18
|
+
output_pod_info() {
|
|
19
|
+
local pod_name="$1"
|
|
20
|
+
local tail_arg=("${@:2}")
|
|
21
|
+
|
|
22
|
+
echo "=== Pod Description ==="
|
|
23
|
+
kubectl describe pod/"${pod_name}" 2>&1 || true
|
|
24
|
+
|
|
25
|
+
# Init containers
|
|
26
|
+
init_containers=$(kubectl get pods "$pod_name" -o jsonpath='{.spec.initContainers[*].name}' 2>/dev/null || true)
|
|
27
|
+
if [ -n "$init_containers" ]; then
|
|
28
|
+
echo ""
|
|
29
|
+
echo "=== Init Container Logs ==="
|
|
30
|
+
for container_name in $init_containers; do
|
|
31
|
+
echo "--- $container_name ---"
|
|
32
|
+
kubectl logs "${pod_name}" -c "${container_name}" "${tail_arg[@]}" 2>&1 || true
|
|
33
|
+
done
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# Main containers
|
|
37
|
+
echo ""
|
|
38
|
+
echo "=== Container Logs ==="
|
|
39
|
+
for container_name in $(kubectl get pods "$pod_name" -o jsonpath='{.spec.containers[*].name}'); do
|
|
40
|
+
echo "--- $container_name ---"
|
|
41
|
+
kubectl logs "${pod_name}" -c "${container_name}" "${tail_arg[@]}" 2>&1 || true
|
|
42
|
+
done
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
# === JOB SUMMARY ===
|
|
46
|
+
{
|
|
47
|
+
echo "## 🔍 Integration Test Debug Summary"
|
|
48
|
+
echo ""
|
|
49
|
+
echo "### Pod Status"
|
|
50
|
+
echo '```'
|
|
51
|
+
kubectl get pods -o wide
|
|
52
|
+
echo '```'
|
|
53
|
+
echo ""
|
|
54
|
+
} >> "${GITHUB_STEP_SUMMARY:-/dev/null}"
|
|
55
|
+
|
|
56
|
+
# === POD STATUS OVERVIEW ===
|
|
57
|
+
echo "::group::📋 Pod Status Overview"
|
|
58
|
+
kubectl get pods -o wide
|
|
59
|
+
echo "::endgroup::"
|
|
60
|
+
|
|
61
|
+
# === MAIN SERVICE PODS (shown first) ===
|
|
62
|
+
for pod_name in $(kubectl get pods -o json | jq -r '.items[] | .metadata.name' | grep -E "^${SERVICE_PREFIX}-" || true); do
|
|
63
|
+
echo "::group::🚀 ${pod_name}"
|
|
64
|
+
output_pod_info "$pod_name"
|
|
65
|
+
echo "::endgroup::"
|
|
66
|
+
done
|
|
67
|
+
|
|
68
|
+
# === OTHER APPLICATION PODS ===
|
|
69
|
+
for pod_name in $(kubectl get pods -o json | jq -r '.items[] | .metadata.name' | grep -vE "$INFRA_PODS" | grep -vE "^${SERVICE_PREFIX}-" || true); do
|
|
70
|
+
if [ -n "$pod_name" ]; then
|
|
71
|
+
echo "::group::📦 ${pod_name}"
|
|
72
|
+
output_pod_info "$pod_name"
|
|
73
|
+
echo "::endgroup::"
|
|
74
|
+
fi
|
|
75
|
+
done
|
|
76
|
+
|
|
77
|
+
# === INFRASTRUCTURE PODS ===
|
|
78
|
+
for pod_name in $(kubectl get pods -o json | jq -r '.items[] | .metadata.name' | grep -E "$INFRA_PODS" || true); do
|
|
79
|
+
echo "::group::🏗️ ${pod_name}"
|
|
80
|
+
output_pod_info "$pod_name" --tail=100
|
|
81
|
+
echo "::endgroup::"
|
|
82
|
+
done
|
|
83
|
+
|
|
84
|
+
# === ERROR SUMMARY WITH ANNOTATIONS ===
|
|
85
|
+
echo "::group::⚠️ Error Summary"
|
|
86
|
+
error_count=0
|
|
87
|
+
for pod_name in $(kubectl get pods -o json | jq -r '.items[] | .metadata.name' | grep -E "^${SERVICE_PREFIX}-" || true); do
|
|
88
|
+
for container_name in $(kubectl get pods "$pod_name" -o jsonpath='{.spec.containers[*].name}'); do
|
|
89
|
+
errors=$(kubectl logs "${pod_name}" -c "${container_name}" 2>&1 | grep -iE "(ERROR|CRITICAL|Exception|Traceback)" | head -5 || true)
|
|
90
|
+
if [ -n "$errors" ]; then
|
|
91
|
+
echo "Errors in ${pod_name}/${container_name}:"
|
|
92
|
+
echo "$errors"
|
|
93
|
+
echo ""
|
|
94
|
+
# Add annotation (limited to avoid exceeding quota)
|
|
95
|
+
if [ $error_count -lt 8 ]; then
|
|
96
|
+
first_error=$(echo "$errors" | head -1 | cut -c1-200)
|
|
97
|
+
echo "::warning title=Error in ${pod_name}/${container_name}::${first_error}"
|
|
98
|
+
((error_count++)) || true
|
|
99
|
+
fi
|
|
100
|
+
fi
|
|
101
|
+
done
|
|
102
|
+
done
|
|
103
|
+
if [ $error_count -eq 0 ]; then
|
|
104
|
+
echo "No errors found in ${SERVICE_PREFIX} service logs"
|
|
105
|
+
fi
|
|
106
|
+
echo "::endgroup::"
|
|
107
|
+
|
|
108
|
+
# === CHECK FOR DEMO SUCCESS ===
|
|
109
|
+
if [ ! -f "${DEMO_DIR}/.success" ]; then
|
|
110
|
+
echo "::error title=Demo Failed::Demo did not complete successfully"
|
|
111
|
+
{
|
|
112
|
+
echo ""
|
|
113
|
+
echo "## ❌ Demo Failed"
|
|
114
|
+
echo '```'
|
|
115
|
+
cat "${DEMO_DIR}/.failed" 2>/dev/null || echo "No failure details available"
|
|
116
|
+
echo '```'
|
|
117
|
+
} >> "${GITHUB_STEP_SUMMARY:-/dev/null}"
|
|
118
|
+
cat "${DEMO_DIR}/.failed" 2>/dev/null || true
|
|
119
|
+
exit 1
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
echo "✅ Demo completed successfully"
|
|
@@ -7,6 +7,8 @@ on:
|
|
|
7
7
|
pull_request:
|
|
8
8
|
branches:
|
|
9
9
|
- main
|
|
10
|
+
paths-ignore:
|
|
11
|
+
- 'CHANGELOG.md'
|
|
10
12
|
|
|
11
13
|
concurrency:
|
|
12
14
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
@@ -18,11 +20,11 @@ jobs:
|
|
|
18
20
|
steps:
|
|
19
21
|
- name: Checkout code
|
|
20
22
|
uses: actions/checkout@v6
|
|
21
|
-
- uses: prefix-dev/setup-pixi@v0.9.
|
|
23
|
+
- uses: prefix-dev/setup-pixi@v0.9.4
|
|
22
24
|
with:
|
|
23
25
|
run-install: false
|
|
24
26
|
post-cleanup: false
|
|
25
|
-
- uses: prefix-dev/setup-pixi@v0.9.
|
|
27
|
+
- uses: prefix-dev/setup-pixi@v0.9.4
|
|
26
28
|
with:
|
|
27
29
|
cache: false
|
|
28
30
|
environments: shellcheck
|
|
@@ -53,7 +55,7 @@ jobs:
|
|
|
53
55
|
steps:
|
|
54
56
|
- name: Checkout code
|
|
55
57
|
uses: actions/checkout@v6
|
|
56
|
-
- uses: prefix-dev/setup-pixi@v0.9.
|
|
58
|
+
- uses: prefix-dev/setup-pixi@v0.9.4
|
|
57
59
|
with:
|
|
58
60
|
run-install: false
|
|
59
61
|
post-cleanup: false
|
|
@@ -64,7 +66,7 @@ jobs:
|
|
|
64
66
|
rm pixi.toml.bak
|
|
65
67
|
# Show any changes
|
|
66
68
|
git diff
|
|
67
|
-
- uses: prefix-dev/setup-pixi@v0.9.
|
|
69
|
+
- uses: prefix-dev/setup-pixi@v0.9.4
|
|
68
70
|
with:
|
|
69
71
|
cache: false
|
|
70
72
|
environments: ${{ matrix.package }}
|
|
@@ -104,7 +106,7 @@ jobs:
|
|
|
104
106
|
df -h
|
|
105
107
|
- name: Checkout code
|
|
106
108
|
uses: actions/checkout@v6
|
|
107
|
-
- uses: prefix-dev/setup-pixi@v0.9.
|
|
109
|
+
- uses: prefix-dev/setup-pixi@v0.9.4
|
|
108
110
|
with:
|
|
109
111
|
run-install: false
|
|
110
112
|
post-cleanup: false
|
|
@@ -115,7 +117,7 @@ jobs:
|
|
|
115
117
|
rm pixi.toml.bak
|
|
116
118
|
# Show any changes
|
|
117
119
|
git diff
|
|
118
|
-
- uses: prefix-dev/setup-pixi@v0.9.
|
|
120
|
+
- uses: prefix-dev/setup-pixi@v0.9.4
|
|
119
121
|
with:
|
|
120
122
|
cache: false
|
|
121
123
|
environments: ${{ matrix.extension == 'diracx' && 'default' || 'default-gubbins' }}
|
|
@@ -205,23 +207,8 @@ jobs:
|
|
|
205
207
|
set -x
|
|
206
208
|
../diracx-charts/run_demo.sh "${demo_args[@]}" "${demo_source_dirs[@]}"
|
|
207
209
|
- name: Debugging information
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
export KUBECONFIG=${DIRACX_DEMO_DIR}/kube.conf
|
|
211
|
-
export PATH=${DIRACX_DEMO_DIR}:$PATH
|
|
212
|
-
kubectl get pods
|
|
213
|
-
for pod_name in $(kubectl get pods -o json | jq -r '.items[] | .metadata.name' | grep -vE '(dex|minio|mysql|rabbitmq|opensearch)'); do
|
|
214
|
-
echo "${pod_name}"
|
|
215
|
-
kubectl describe pod/"${pod_name}" || true
|
|
216
|
-
for container_name in $(kubectl get pods $pod_name -o jsonpath='{.spec.initContainers[*].name} {.spec.containers[*].name}'); do
|
|
217
|
-
echo $pod_name $container_name
|
|
218
|
-
kubectl logs "${pod_name}" -c "${container_name}" || true
|
|
219
|
-
done
|
|
220
|
-
done
|
|
221
|
-
if [ ! -f "${DIRACX_DEMO_DIR}/.success" ]; then
|
|
222
|
-
cat "${DIRACX_DEMO_DIR}/.failed"
|
|
223
|
-
exit 1
|
|
224
|
-
fi
|
|
210
|
+
if: always()
|
|
211
|
+
run: .github/scripts/collect-k8s-debug-info.sh "$PWD/../diracx-charts/.demo" "${{ matrix.extension == 'gubbins' && 'gubbins' || 'diracx' }}"
|
|
225
212
|
- name: Run pytest
|
|
226
213
|
run: |
|
|
227
214
|
pixi run pytest-${{ matrix.extension }} --demo-dir="$PWD/../diracx-charts/" --cov-report=xml:coverage-pytest.xml --junitxml=report.xml
|
|
@@ -242,11 +229,11 @@ jobs:
|
|
|
242
229
|
steps:
|
|
243
230
|
- name: Checkout code
|
|
244
231
|
uses: actions/checkout@v6
|
|
245
|
-
- uses: prefix-dev/setup-pixi@v0.9.
|
|
232
|
+
- uses: prefix-dev/setup-pixi@v0.9.4
|
|
246
233
|
with:
|
|
247
234
|
run-install: false
|
|
248
235
|
post-cleanup: false
|
|
249
|
-
- uses: prefix-dev/setup-pixi@v0.9.
|
|
236
|
+
- uses: prefix-dev/setup-pixi@v0.9.4
|
|
250
237
|
with:
|
|
251
238
|
cache: false
|
|
252
239
|
locked: false
|
|
@@ -8,7 +8,7 @@ default_language_version:
|
|
|
8
8
|
python: python3
|
|
9
9
|
|
|
10
10
|
ci:
|
|
11
|
-
skip: [generate-pixi-docs]
|
|
11
|
+
skip: [generate-pixi-docs, settings-doc-check]
|
|
12
12
|
|
|
13
13
|
default_stages: [pre-commit]
|
|
14
14
|
|
|
@@ -30,9 +30,9 @@ repos:
|
|
|
30
30
|
- id: check-added-large-files
|
|
31
31
|
|
|
32
32
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
33
|
-
rev:
|
|
33
|
+
rev: "v0.14.14"
|
|
34
34
|
hooks:
|
|
35
|
-
- id: ruff
|
|
35
|
+
- id: ruff-check
|
|
36
36
|
args: ["--fix", "--show-fixes"]
|
|
37
37
|
- id: ruff-format
|
|
38
38
|
|
|
@@ -51,29 +51,35 @@ repos:
|
|
|
51
51
|
- boto3-stubs[essential]
|
|
52
52
|
exclude: ^(diracx-client/src/diracx/client/_generated|diracx-[a-z]+/tests/|diracx-testing/|build|extensions/gubbins/gubbins-client/src/gubbins/client/_generated)
|
|
53
53
|
|
|
54
|
-
- repo: https://github.com/
|
|
54
|
+
- repo: https://github.com/hukkin/mdformat
|
|
55
55
|
rev: 1.0.0
|
|
56
56
|
hooks:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
- mdformat-black
|
|
57
|
+
- id: mdformat
|
|
58
|
+
args: ["--number"]
|
|
59
|
+
exclude: ^CHANGELOG\.md$
|
|
60
|
+
additional_dependencies:
|
|
61
|
+
- mdformat-mkdocs
|
|
62
|
+
- mdformat-gfm
|
|
64
63
|
|
|
65
64
|
- repo: https://github.com/codespell-project/codespell
|
|
66
65
|
rev: v2.4.1
|
|
67
66
|
hooks:
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
- id: codespell
|
|
68
|
+
args: ["-w"]
|
|
69
|
+
|
|
70
|
+
- repo: https://github.com/adamchainz/blacken-docs
|
|
71
|
+
rev: 1.20.0
|
|
72
|
+
hooks:
|
|
73
|
+
- id: blacken-docs
|
|
74
|
+
additional_dependencies:
|
|
75
|
+
- black==22.12.0
|
|
70
76
|
|
|
71
77
|
- repo: local
|
|
72
78
|
hooks:
|
|
73
79
|
- id: check-lollygag
|
|
74
80
|
name: check for lollygag
|
|
75
81
|
types: [python]
|
|
76
|
-
entry:
|
|
82
|
+
entry: "(?i)lollygag"
|
|
77
83
|
language: pygrep
|
|
78
84
|
files: ^diracx
|
|
79
85
|
|
|
@@ -84,4 +90,13 @@ repos:
|
|
|
84
90
|
entry: pixi run -e default python .github/workflows/generate_pixi_tasks_doc.py
|
|
85
91
|
language: system
|
|
86
92
|
pass_filenames: false
|
|
87
|
-
files: ^pixi\.toml$|^pixi\.lock$
|
|
93
|
+
files: ^pixi\.toml$|^pixi\.lock$ # only run if pixi files change
|
|
94
|
+
|
|
95
|
+
- repo: local
|
|
96
|
+
hooks:
|
|
97
|
+
- id: settings-doc-check
|
|
98
|
+
name: Generate settings documentation
|
|
99
|
+
entry: pixi run -e default python scripts/generate_settings_docs.py
|
|
100
|
+
language: system
|
|
101
|
+
pass_filenames: false
|
|
102
|
+
files: ^(diracx-.*/src/diracx/.*/settings\.py|docs/.*\.j2|docs/templates/.*\.jinja|scripts/generate_settings_docs\.py)$
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.0.8](https://github.com/DIRACGrid/diracx/compare/v0.0.7...v0.0.8) (2026-02-02)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* allow git commit hash usage in config source revision ([#726](https://github.com/DIRACGrid/diracx/issues/726)) ([8b8b687](https://github.com/DIRACGrid/diracx/commit/8b8b687dc7a72a5a3bb904a338969351e64e6173))
|
|
9
|
+
* disallow relative paths with any depth other than zero ([82e7d15](https://github.com/DIRACGrid/diracx/commit/82e7d15effdf3b7d6807b9d287ca7f0549402f6e))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* add ci skip settings-doc-check ([ccb1f48](https://github.com/DIRACGrid/diracx/commit/ccb1f489902a45ceea2524ec3213968641db5e2e))
|
|
15
|
+
* added a StrEnum for Entrypoints to avoid spelling mistakes ([#744](https://github.com/DIRACGrid/diracx/issues/744)) ([19bfadc](https://github.com/DIRACGrid/diracx/commit/19bfadc1c473626dfe9f3a6489248c098056186e))
|
|
16
|
+
* annoying wrapper script ([ccb1f48](https://github.com/DIRACGrid/diracx/commit/ccb1f489902a45ceea2524ec3213968641db5e2e))
|
|
17
|
+
* cleanups ([ccb1f48](https://github.com/DIRACGrid/diracx/commit/ccb1f489902a45ceea2524ec3213968641db5e2e))
|
|
18
|
+
* cs conversion takes into account all the parent classes ([#753](https://github.com/DIRACGrid/diracx/issues/753)) ([b742a34](https://github.com/DIRACGrid/diracx/commit/b742a34150d9d925460de4db2c5eba0cb5eafd49))
|
|
19
|
+
* format ([0440a9c](https://github.com/DIRACGrid/diracx/commit/0440a9cecba1b2302630b5aae707b6162954332d))
|
|
20
|
+
* format settings doc files ([ccb1f48](https://github.com/DIRACGrid/diracx/commit/ccb1f489902a45ceea2524ec3213968641db5e2e))
|
|
21
|
+
* formatting ([0440a9c](https://github.com/DIRACGrid/diracx/commit/0440a9cecba1b2302630b5aae707b6162954332d))
|
|
22
|
+
* formatting and remove caching ([4ed2709](https://github.com/DIRACGrid/diracx/commit/4ed2709980338cb0e423ef5630bdf6796e4c7250))
|
|
23
|
+
* improve pytest-integration debugging output ([#740](https://github.com/DIRACGrid/diracx/issues/740)) ([d691175](https://github.com/DIRACGrid/diracx/commit/d691175438db532bd833ceecf1ad36ea3de29a5d))
|
|
24
|
+
* reorder imports ([4ed2709](https://github.com/DIRACGrid/diracx/commit/4ed2709980338cb0e423ef5630bdf6796e4c7250))
|
|
25
|
+
* set exclude=True on computed field ([4ed2709](https://github.com/DIRACGrid/diracx/commit/4ed2709980338cb0e423ef5630bdf6796e4c7250))
|
|
26
|
+
* skip CI on release-please PRs ([#759](https://github.com/DIRACGrid/diracx/issues/759)) ([f236f61](https://github.com/DIRACGrid/diracx/commit/f236f6185db30c0a7faa7fce7f280697484087eb)), closes [#685](https://github.com/DIRACGrid/diracx/issues/685)
|
|
27
|
+
* update tasks ([ccb1f48](https://github.com/DIRACGrid/diracx/commit/ccb1f489902a45ceea2524ec3213968641db5e2e))
|
|
28
|
+
* use batched DB deletes with SKIP LOCKED for sandbox cleanup ([#739](https://github.com/DIRACGrid/diracx/issues/739)) ([584d4e6](https://github.com/DIRACGrid/diracx/commit/584d4e62a87d1b2ffbf739e80fe44f9c0fb92c9a))
|
|
29
|
+
* well that didn't work ([ccb1f48](https://github.com/DIRACGrid/diracx/commit/ccb1f489902a45ceea2524ec3213968641db5e2e))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Miscellaneous Chores
|
|
33
|
+
|
|
34
|
+
* release 0.0.8 ([80f1a37](https://github.com/DIRACGrid/diracx/commit/80f1a376d8e9e51fab4f6b45d1e5bf66e73f8d4e))
|
|
35
|
+
|
|
36
|
+
## [0.0.7](https://github.com/DIRACGrid/diracx/compare/v0.0.6...v0.0.7) (2026-01-20)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* add logging and retry for cache population failures ([#736](https://github.com/DIRACGrid/diracx/issues/736)) ([b899a8d](https://github.com/DIRACGrid/diracx/commit/b899a8d207a42b232fbe4062f329a32d64c37ec3))
|
|
42
|
+
* require fastapi>=0.121.0 for Depends scope parameter ([#737](https://github.com/DIRACGrid/diracx/issues/737)) ([fb15f9c](https://github.com/DIRACGrid/diracx/commit/fb15f9c5bb9d36568e37f0fae7a2a78995f02d51))
|
|
43
|
+
|
|
44
|
+
## [0.0.6](https://github.com/DIRACGrid/diracx/compare/v0.0.5...v0.0.6) (2026-01-20)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Bug Fixes
|
|
48
|
+
|
|
49
|
+
* use correct argument name for update_chart_version.py ([84390f0](https://github.com/DIRACGrid/diracx/commit/84390f0ec66bae4db342864da52810b26955c4bd))
|
|
50
|
+
|
|
51
|
+
## [0.0.5](https://github.com/DIRACGrid/diracx/compare/v0.0.4...v0.0.5) (2026-01-20)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Features
|
|
55
|
+
|
|
56
|
+
* add logging for error conditions and edge cases ([#734](https://github.com/DIRACGrid/diracx/issues/734)) ([2c8b5c6](https://github.com/DIRACGrid/diracx/commit/2c8b5c682f17270e341deaf23cd4a7b4b7c4dd0a))
|
|
57
|
+
* extend update_chart_version.py for downstream charts ([#731](https://github.com/DIRACGrid/diracx/issues/731)) ([b1a293b](https://github.com/DIRACGrid/diracx/commit/b1a293b01ad062d162afdfb5377a76c95eb09913))
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Bug Fixes
|
|
61
|
+
|
|
62
|
+
* use YAML parser for chart version to handle comments ([9516971](https://github.com/DIRACGrid/diracx/commit/95169716206bb476f450fff8fd228ada649fef5b))
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
### Miscellaneous Chores
|
|
66
|
+
|
|
67
|
+
* release 0.0.5 ([c0f166b](https://github.com/DIRACGrid/diracx/commit/c0f166bf29e1ed0ac2b5aa89ebb39ac60cfe23d3))
|
|
68
|
+
|
|
69
|
+
## [0.0.4](https://github.com/DIRACGrid/diracx/compare/v0.0.3...v0.0.4) (2026-01-19)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Bug Fixes
|
|
73
|
+
|
|
74
|
+
* use extension-aware Config discovery in testing fixture ([#727](https://github.com/DIRACGrid/diracx/issues/727)) ([49d0fb8](https://github.com/DIRACGrid/diracx/commit/49d0fb8c2718a5668f330219025832365119d15d))
|
|
75
|
+
|
|
76
|
+
## [0.0.3](https://github.com/DIRACGrid/diracx/compare/v0.0.2...v0.0.3) (2026-01-19)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
### Features
|
|
80
|
+
|
|
81
|
+
* add gubbins-charts Helm chart for gubbins extension ([#691](https://github.com/DIRACGrid/diracx/issues/691)) ([649f318](https://github.com/DIRACGrid/diracx/commit/649f318daa8eeaec177cfde4bc2830a2a89a9058))
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
### Bug Fixes
|
|
85
|
+
|
|
86
|
+
* do not use Any from pyparsing ([#725](https://github.com/DIRACGrid/diracx/issues/725)) ([b3873a1](https://github.com/DIRACGrid/diracx/commit/b3873a1d8859b670ac61e4d124a91a38f2e9c807))
|
|
87
|
+
* ensure database commits complete before HTTP responses ([#722](https://github.com/DIRACGrid/diracx/issues/722)) ([4685790](https://github.com/DIRACGrid/diracx/commit/46857909b9259c13e8603b2cbaecb212d3229784))
|
|
88
|
+
* exclude CHANGELOG.md from mdformat ([639026a](https://github.com/DIRACGrid/diracx/commit/639026a19605afd8ae94c67f36bd90b5c381b45b))
|
|
89
|
+
* move cern-specific config option from diracx to lhcbdiracx ([#694](https://github.com/DIRACGrid/diracx/issues/694)) ([927d51b](https://github.com/DIRACGrid/diracx/commit/927d51bb8cf21b5e4f82c53b7e04bf0e72435806))
|
|
90
|
+
* support additional config hints ([#690](https://github.com/DIRACGrid/diracx/issues/690)) ([c265a47](https://github.com/DIRACGrid/diracx/commit/c265a47363850662502bb7f0fb8ebbbe94893e85))
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
### Miscellaneous Chores
|
|
94
|
+
|
|
95
|
+
* release 0.0.3 ([dbc726c](https://github.com/DIRACGrid/diracx/commit/dbc726c2e6ac1ed5555b8144b01fea71b5e897ba))
|
|
96
|
+
|
|
97
|
+
## [0.0.2](https://github.com/DIRACGrid/diracx/compare/v0.0.1...v0.0.2) (2025-10-22)
|
|
98
|
+
|
|
99
|
+
### Bug Fixes
|
|
100
|
+
|
|
101
|
+
- correct release-please integration in deployment workflow ([#683](https://github.com/DIRACGrid/diracx/issues/683)) ([0084328](https://github.com/DIRACGrid/diracx/commit/00843286b49a2a075226ad47af746d03b9413d60))
|
|
102
|
+
|
|
103
|
+
## [0.0.1](https://github.com/DIRACGrid/diracx/compare/v0.0.1...v0.0.1) (2025-10-22)
|
|
104
|
+
|
|
105
|
+
### Features
|
|
106
|
+
|
|
107
|
+
- DiracX is here! This is the companion release of DIRAC v9 and the first non-prerelease version of DiracX.
|
|
108
|
+
|
|
109
|
+
### Miscellaneous Chores
|
|
110
|
+
|
|
111
|
+
- release 0.0.1 ([615014d](https://github.com/DIRACGrid/diracx/commit/615014dcf87d985c7b286b1c8d94e4c4520d8463))
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from diracx.core.extensions import DiracEntryPoint, select_from_extension
|
|
4
|
+
|
|
5
|
+
from .auth import app
|
|
6
|
+
|
|
7
|
+
__all__ = ("app",)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# Load all the sub commands
|
|
11
|
+
cli_names = set(
|
|
12
|
+
[
|
|
13
|
+
entry_point.name
|
|
14
|
+
for entry_point in select_from_extension(group=DiracEntryPoint.CLI)
|
|
15
|
+
]
|
|
16
|
+
)
|
|
17
|
+
for cli_name in cli_names:
|
|
18
|
+
entry_point = select_from_extension(group=DiracEntryPoint.CLI, name=cli_name)[0]
|
|
19
|
+
app.add_typer(entry_point.load(), name=entry_point.name)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
cli_hidden_names = set(
|
|
23
|
+
[
|
|
24
|
+
entry_point.name
|
|
25
|
+
for entry_point in select_from_extension(group=DiracEntryPoint.HIDDEN_CLI)
|
|
26
|
+
]
|
|
27
|
+
)
|
|
28
|
+
for cli_name in cli_hidden_names:
|
|
29
|
+
entry_point = select_from_extension(
|
|
30
|
+
group=DiracEntryPoint.HIDDEN_CLI, name=cli_name
|
|
31
|
+
)[0]
|
|
32
|
+
app.add_typer(entry_point.load(), name=entry_point.name, hidden=True)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
if __name__ == "__main__":
|
|
36
|
+
app()
|
|
@@ -21,7 +21,7 @@ from typer import Option
|
|
|
21
21
|
|
|
22
22
|
from diracx.core.config import Config
|
|
23
23
|
from diracx.core.config.schema import Field, SupportInfo
|
|
24
|
-
from diracx.core.extensions import select_from_extension
|
|
24
|
+
from diracx.core.extensions import DiracEntryPoint, select_from_extension
|
|
25
25
|
|
|
26
26
|
from ..utils import AsyncTyper
|
|
27
27
|
|
|
@@ -77,9 +77,9 @@ def cs_sync(old_file: Path, new_file: Path):
|
|
|
77
77
|
)
|
|
78
78
|
|
|
79
79
|
_apply_fixes(raw)
|
|
80
|
-
config_class: Config = select_from_extension(
|
|
81
|
-
|
|
82
|
-
].load()
|
|
80
|
+
config_class: Config = select_from_extension(
|
|
81
|
+
group=DiracEntryPoint.CORE, name="config"
|
|
82
|
+
)[0].load()
|
|
83
83
|
config = config_class.model_validate(raw)
|
|
84
84
|
new_file.write_text(
|
|
85
85
|
yaml.safe_dump(config.model_dump(exclude_unset=True, mode="json"))
|
|
@@ -264,7 +264,7 @@ def generate_helm_values(
|
|
|
264
264
|
|
|
265
265
|
from diracx.core.extensions import select_from_extension
|
|
266
266
|
|
|
267
|
-
for entry_point in select_from_extension(group=
|
|
267
|
+
for entry_point in select_from_extension(group=DiracEntryPoint.SQL_DB):
|
|
268
268
|
db_name = entry_point.name
|
|
269
269
|
db_config = all_db_configs.get(db_name, {})
|
|
270
270
|
|
|
@@ -310,7 +310,7 @@ def generate_helm_values(
|
|
|
310
310
|
},
|
|
311
311
|
}
|
|
312
312
|
|
|
313
|
-
for entry_point in select_from_extension(group=
|
|
313
|
+
for entry_point in select_from_extension(group=DiracEntryPoint.OS_DB):
|
|
314
314
|
db_name = entry_point.name
|
|
315
315
|
db_config = all_db_configs.get(db_name, {})
|
|
316
316
|
|
|
@@ -13,7 +13,11 @@ from rich.table import Table
|
|
|
13
13
|
from typer import FileText, Option
|
|
14
14
|
|
|
15
15
|
from diracx.client.aio import AsyncDiracClient
|
|
16
|
-
from diracx.core.models import
|
|
16
|
+
from diracx.core.models.search import (
|
|
17
|
+
ScalarSearchOperator,
|
|
18
|
+
SearchSpec,
|
|
19
|
+
VectorSearchOperator,
|
|
20
|
+
)
|
|
17
21
|
from diracx.core.preferences import OutputFormats, get_diracx_preferences
|
|
18
22
|
|
|
19
23
|
from .utils import AsyncTyper
|