svc-infra 0.1.624__tar.gz → 0.1.626__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.
Potentially problematic release.
This version of svc-infra might be problematic. Click here for more details.
- {svc_infra-0.1.624 → svc_infra-0.1.626}/PKG-INFO +1 -1
- {svc_infra-0.1.624 → svc_infra-0.1.626}/pyproject.toml +1 -1
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/docs/docs_cmds.py +7 -56
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/help.py +4 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/mcp/svc_infra_mcp.py +23 -1
- {svc_infra-0.1.624 → svc_infra-0.1.626}/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/alembic.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/models.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/provider/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/provider/aiydan.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/provider/base.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/provider/registry.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/provider/stripe.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/schemas.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/service.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/apf_payments/settings.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/apf_payments/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/apf_payments/router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/apf_payments/setup.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/_cookies.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/gaurd.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/mfa/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/mfa/models.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/mfa/pre_auth.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/mfa/router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/mfa/security.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/mfa/utils.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/mfa/verify.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/policy.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/providers.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/routers/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/routers/account.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/routers/apikey_router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/routers/oauth_router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/routers/session_router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/security.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/sender.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/settings.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/state.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/cache/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/cache/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/http.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/nosql/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/nosql/mongo/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/nosql/mongo/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/nosql/mongo/crud_router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/nosql/mongo/health.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/sql/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/sql/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/sql/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/sql/crud_router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/sql/health.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/sql/session.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/sql/users.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/dependencies/ratelimit.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/docs/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/docs/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/docs/landing.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/docs/scoped.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/dual/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/dual/dualize.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/dual/protected.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/dual/public.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/dual/router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/dual/utils.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/dx.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/ease.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/http/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/http/concurrency.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/http/conditional.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/http/deprecation.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/debug.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/errors/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/errors/catchall.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/errors/exceptions.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/errors/handlers.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/idempotency.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/idempotency_store.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/optimistic_lock.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/ratelimit.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/ratelimit_store.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/request_id.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/request_size_limit.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/openapi/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/openapi/apply.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/openapi/conventions.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/openapi/models.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/openapi/mutators.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/openapi/pipeline.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/openapi/responses.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/openapi/security.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/ops/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/pagination.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/paths/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/paths/auth.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/paths/generic.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/paths/prefix.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/paths/user.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/routers/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/routers/ping.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/setup.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/tenancy/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/tenancy/context.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/app/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/app/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/app/env.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/app/logging/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/app/logging/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/app/logging/filter.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/app/logging/formats.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/app/root.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/billing/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/billing/models.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/billing/service.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/bundled_docs/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/bundled_docs/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/bundled_docs/getting-started.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/backend.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/decorators.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/demo.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/keys.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/recache.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/resources.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/tags.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/ttl.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cache/utils.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/__main__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/nosql/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/nosql/mongo/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/nosql/mongo/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/nosql/mongo/mongo_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/nosql/mongo/mongo_scaffold_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/sql/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/sql/alembic_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/sql/sql_export_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/sql/sql_scaffold_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/dx/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/dx/dx_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/jobs/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/jobs/jobs_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/obs/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/obs/obs_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/sdk/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/sdk/sdk_cmds.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/foundation/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/foundation/runner.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/foundation/typer_bootstrap.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/data/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/data/backup.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/data/erasure.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/data/fixtures.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/data/retention.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/crud_schema.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/inbox.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/base.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/constants.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/core.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/indexes.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/management.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/mongo/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/mongo/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/mongo/client.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/mongo/settings.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/mongo/templates/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/mongo/templates/documents.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/mongo/templates/resources.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/mongo/templates/schemas.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/repository.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/resource.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/scaffold.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/service.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/service_with_hooks.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/types.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/nosql/utils.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/outbox.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/apikey.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/authref.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/base.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/constants.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/core.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/management.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/repository.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/resource.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/scaffold.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/service.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/service_with_hooks.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/models_schemas/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/models_schemas/auth/models.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/models_schemas/auth/schemas.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/models_schemas/entity/models.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/models_schemas/entity/schemas.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/setup/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/setup/alembic.ini.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/setup/env_async.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/setup/env_sync.py.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/templates/setup/script.py.mako.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/tenant.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/types.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/uniq.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/uniq_hooks.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/utils.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/sql/versioning.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/db/utils.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/acceptance-matrix.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/acceptance.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/adr/0002-background-jobs-and-scheduling.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/adr/0003-webhooks-framework.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/adr/0004-tenancy-model.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/adr/0005-data-lifecycle.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/adr/0006-ops-slos-and-metrics.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/adr/0007-docs-and-sdks.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/adr/0008-billing-primitives.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/adr/0009-acceptance-harness.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/api.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/auth.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/cache.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/cli.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/contributing.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/data-lifecycle.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/database.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/docs-and-sdks.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/environment.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/getting-started.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/idempotency.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/jobs.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/observability.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/ops.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/rate-limiting.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/repo-review.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/security.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/tenancy.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/docs/webhooks.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/dx/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/dx/changelog.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/dx/checks.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/jobs/builtins/outbox_processor.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/jobs/builtins/webhook_delivery.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/jobs/easy.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/jobs/loader.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/jobs/queue.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/jobs/redis_queue.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/jobs/scheduler.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/jobs/worker.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/mcp/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/cloud_dash.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/grafana/dashboards/http-overview.json +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/metrics/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/metrics/asgi.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/metrics/base.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/metrics/http.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/metrics/sqlalchemy.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/metrics.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/compose_cloud/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/compose_cloud/templates/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/compose_cloud/templates/agent.yaml.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/compose_cloud/templates/docker-compose.cloud.yml.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/dashboards/00_overview.json +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/dashboards/10_http.json +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/dashboards/20_db.json +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/dashboards/30_runtime.json +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/dashboards/40_clients.json +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/dashboards/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/templates/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/templates/docker-compose.yml.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/templates/prometheus.yml.tmpl +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/templates/provisioning/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/templates/provisioning/dashboards.yml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/providers/grafana/templates/provisioning/datasource.yml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/settings.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/grafana_dashboard.json +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/prometheus_rules.yml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/compose/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/compose/agent.yaml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/compose/docker-compose.yml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/fly/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/fly/agent.yaml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/fly/fly.toml.fragment +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/k8s/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/k8s/configmap.yaml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/k8s/deployment.yaml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/railway/Dockerfile +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/railway/README.md +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/railway/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/obs/templates/sidecars/railway/agent.yaml +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/py.typed +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/audit.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/audit_service.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/headers.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/hibp.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/jwt_rotation.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/lockout.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/models.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/org_invites.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/passwords.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/permissions.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/session.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/security/signed_cookies.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/utils.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/webhooks/__init__.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/webhooks/add.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/webhooks/fastapi.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/webhooks/router.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/webhooks/service.py +0 -0
- {svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/webhooks/signing.py +0 -0
|
@@ -51,29 +51,17 @@ def _discover_pkg_topics() -> Dict[str, Path]:
|
|
|
51
51
|
def _resolve_docs_dir(ctx: click.Context) -> Path | None:
|
|
52
52
|
"""
|
|
53
53
|
Optional override precedence:
|
|
54
|
-
1)
|
|
55
|
-
2)
|
|
56
|
-
3) *Only when working inside the svc-infra repo itself*: repo-root /docs
|
|
54
|
+
1) SVC_INFRA_DOCS_DIR env var
|
|
55
|
+
2) *Only when working inside the svc-infra repo itself*: repo-root /docs
|
|
57
56
|
"""
|
|
58
|
-
# 1)
|
|
59
|
-
current: click.Context | None = ctx
|
|
60
|
-
while current is not None:
|
|
61
|
-
docs_dir_opt = (current.params or {}).get("docs_dir")
|
|
62
|
-
if docs_dir_opt:
|
|
63
|
-
path = docs_dir_opt if isinstance(docs_dir_opt, Path) else Path(docs_dir_opt)
|
|
64
|
-
path = path.expanduser()
|
|
65
|
-
if path.exists():
|
|
66
|
-
return path
|
|
67
|
-
current = current.parent
|
|
68
|
-
|
|
69
|
-
# 2) Env var
|
|
57
|
+
# 1) Env var
|
|
70
58
|
env_dir = os.getenv("SVC_INFRA_DOCS_DIR")
|
|
71
59
|
if env_dir:
|
|
72
60
|
p = Path(env_dir).expanduser()
|
|
73
61
|
if p.exists():
|
|
74
62
|
return p
|
|
75
63
|
|
|
76
|
-
#
|
|
64
|
+
# 2) In-repo convenience (so `svc-infra docs` works inside this repo)
|
|
77
65
|
try:
|
|
78
66
|
root = resolve_project_root()
|
|
79
67
|
proj_docs = root / "docs"
|
|
@@ -130,46 +118,9 @@ def register(app: typer.Typer) -> None:
|
|
|
130
118
|
docs_app = typer.Typer(no_args_is_help=True, add_completion=False, cls=DocsGroup)
|
|
131
119
|
|
|
132
120
|
@docs_app.callback(invoke_without_command=True)
|
|
133
|
-
def _docs_options(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
"--docs-dir",
|
|
137
|
-
help="Path to a docs directory to read from (overrides packaged docs)",
|
|
138
|
-
),
|
|
139
|
-
topic: str | None = typer.Option(None, "--topic", help="Topic to show directly"),
|
|
140
|
-
) -> None:
|
|
141
|
-
if topic:
|
|
142
|
-
key = _norm(topic)
|
|
143
|
-
ctx = click.get_current_context()
|
|
144
|
-
dir_to_use = _resolve_docs_dir(ctx)
|
|
145
|
-
fs = _discover_fs_topics(dir_to_use) if dir_to_use else {}
|
|
146
|
-
if key in fs:
|
|
147
|
-
typer.echo(fs[key].read_text(encoding="utf-8", errors="replace"))
|
|
148
|
-
raise typer.Exit(code=0)
|
|
149
|
-
pkg = _discover_pkg_topics()
|
|
150
|
-
if key in pkg:
|
|
151
|
-
typer.echo(pkg[key].read_text(encoding="utf-8", errors="replace"))
|
|
152
|
-
raise typer.Exit(code=0)
|
|
153
|
-
raise typer.BadParameter(f"Unknown topic: {topic}")
|
|
154
|
-
|
|
155
|
-
@docs_app.command("list", help="List available documentation topics")
|
|
156
|
-
def list_topics() -> None:
|
|
157
|
-
ctx = click.get_current_context()
|
|
158
|
-
dir_to_use = _resolve_docs_dir(ctx)
|
|
159
|
-
fs = _discover_fs_topics(dir_to_use) if dir_to_use else {}
|
|
160
|
-
pkg = _discover_pkg_topics()
|
|
161
|
-
|
|
162
|
-
def _print(name: str, path: Path) -> None:
|
|
163
|
-
try:
|
|
164
|
-
typer.echo(f"{name}\t{path}")
|
|
165
|
-
except Exception:
|
|
166
|
-
typer.echo(name)
|
|
167
|
-
|
|
168
|
-
for name, path in fs.items():
|
|
169
|
-
_print(name, path)
|
|
170
|
-
for name, path in pkg.items():
|
|
171
|
-
if name not in fs:
|
|
172
|
-
_print(name, path)
|
|
121
|
+
def _docs_options() -> None:
|
|
122
|
+
# No group-level options; dynamic commands and 'show' handle topics.
|
|
123
|
+
return None
|
|
173
124
|
|
|
174
125
|
@docs_app.command("show", help="Show docs for a topic (alternative to dynamic subcommand)")
|
|
175
126
|
def show(topic: str) -> None:
|
|
@@ -21,4 +21,8 @@ How to run (pick what fits your workflow):
|
|
|
21
21
|
Notes:
|
|
22
22
|
* Make sure you’re in the right virtual environment (or use `pipx`).
|
|
23
23
|
* You can point `--project-root` at your Alembic root; if omitted we auto-detect.
|
|
24
|
+
|
|
25
|
+
Learn more:
|
|
26
|
+
* Explore available topics: `svc-infra docs --help`
|
|
27
|
+
* Show a topic directly: `svc-infra docs <topic>` or `svc-infra docs show <topic>`
|
|
24
28
|
"""
|
|
@@ -20,6 +20,25 @@ async def svc_infra_cmd_help() -> dict:
|
|
|
20
20
|
return await cli_cmd_help(CLI_PROG)
|
|
21
21
|
|
|
22
22
|
|
|
23
|
+
# No dedicated 'docs list' function — users can use 'docs --help' to discover topics.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
async def svc_infra_docs_help() -> dict:
|
|
27
|
+
"""
|
|
28
|
+
Run 'svc-infra docs --help' and return its output.
|
|
29
|
+
Prepares the project environment and executes from the repo root so
|
|
30
|
+
environment-provided docs directories and local topics are discoverable.
|
|
31
|
+
"""
|
|
32
|
+
root = prepare_env()
|
|
33
|
+
text = await run_from_root(root, CLI_PROG, ["docs", "--help"])
|
|
34
|
+
return {
|
|
35
|
+
"ok": True,
|
|
36
|
+
"action": "docs_help",
|
|
37
|
+
"project_root": str(root),
|
|
38
|
+
"help": text,
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
23
42
|
class Subcommand(str, Enum):
|
|
24
43
|
# SQL group commands
|
|
25
44
|
sql_init = "sql init"
|
|
@@ -52,7 +71,7 @@ class Subcommand(str, Enum):
|
|
|
52
71
|
obs_scaffold = "obs scaffold"
|
|
53
72
|
|
|
54
73
|
# Docs group
|
|
55
|
-
|
|
74
|
+
docs_help = "docs --help"
|
|
56
75
|
docs_show = "docs show"
|
|
57
76
|
|
|
58
77
|
# DX group
|
|
@@ -95,8 +114,11 @@ mcp = mcp_from_functions(
|
|
|
95
114
|
functions=[
|
|
96
115
|
svc_infra_cmd_help,
|
|
97
116
|
svc_infra_subcmd_help,
|
|
117
|
+
svc_infra_docs_help,
|
|
118
|
+
# Docs listing is available via 'docs --help'; no separate MCP function needed.
|
|
98
119
|
],
|
|
99
120
|
)
|
|
100
121
|
|
|
122
|
+
|
|
101
123
|
if __name__ == "__main__":
|
|
102
124
|
mcp.run(transport="stdio")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/routers/apikey_router.py
RENAMED
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/routers/oauth_router.py
RENAMED
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/auth/routers/session_router.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/nosql/mongo/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/db/nosql/mongo/crud_router.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/errors/__init__.py
RENAMED
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/errors/catchall.py
RENAMED
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/errors/exceptions.py
RENAMED
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/errors/handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/idempotency_store.py
RENAMED
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/optimistic_lock.py
RENAMED
|
File without changes
|
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/ratelimit_store.py
RENAMED
|
File without changes
|
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/api/fastapi/middleware/request_size_limit.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{svc_infra-0.1.624 → svc_infra-0.1.626}/src/svc_infra/cli/cmds/db/nosql/mongo/mongo_scaffold_cmds.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|