deploy-update#710
Open
lbedner wants to merge 1 commit into
Open
Conversation
25001c4 to
fae5315
Compare
There was a problem hiding this comment.
Pull request overview
Updates the docs deployment configuration and hardens several template surfaces (auth, org invites, payment redirects), while introducing a new “ops” adapter layer + DNS CLI for operator-driven provisioning tasks.
Changes:
- Migrate documentation hosting to
docs.aegis-stack.io(MkDocssite_url,docs/CNAME, and local static-serve helper target). - Tighten security defaults and operator surfaces in the project template (auth response models + resend-verification endpoint + rate limits, admin-gating for worker/scheduler/metrics/comms/task-history endpoints, invite TTL + role-capped invites, safer signup model).
- Add new ops subsystem for email-domain setup + registrar interactions, plus a
dnsCLI backed by Porkbun/Resend adapters.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Adds loading="lazy" to integration logos to reduce initial render cost. |
| mkdocs.yml | Updates site_url to the new custom docs domain. |
| Makefile | Adds docs-static target to build once and serve static docs locally. |
| docs/CNAME | Configures GitHub Pages custom domain for docs. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/tests/conftest.py.jinja | Adds authenticated_client and ensures auth_headers fixture exists even in DB-less stacks. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_worker_endpoints.py.jinja | Ensures worker endpoint tests send auth headers and override DB dep when needed. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_scheduler_endpoints.py.jinja | Ensures scheduler endpoint tests send auth headers and override DB dep when needed. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_payment_endpoints.py | Updates checkout URL precedence tests (now expecting relative URLs). |
| aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_comms_endpoints.py.jinja | Gates send endpoints in tests with auth headers and DB override in auth+DB stacks. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/payment/schemas.py | Adds redirect URL validation intended to prevent off-domain redirects. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/types.py | Introduces ops wire dataclasses for DNS/mail provisioning flows. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/protocols.py | Defines registrar/mail-provider adapter protocols. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/email_setup.py | Adds end-to-end email domain setup orchestrator. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/audit.py | Adds append-only audit writer for ops runs under .aegis/. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/adapters/resend.py | Implements Resend mail-provider adapter (domain add + verification polling). |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/adapters/porkbun.py | Implements Porkbun registrar adapter for DNS record management. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/adapters/init.py | Documents the ops adapter package purpose. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ops/init.py | Introduces the ops package and its intended extension pattern. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/user_service.py.jinja | Hardcodes new-user is_active=True in line with narrowed UserCreate. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/auth/invite_service.py.jinja | Filters/blocks expired org invites on sweep + accept paths. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/models/user.py.jinja | Adds typed response models and narrows UserCreate fields to reduce privilege leakage. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/models/org.py.jinja | Adds invite expiry + removes invite token from list responses. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/integrations/main.py | Resolves Flet assets_dir to an absolute path to ensure overrides load. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/config.py.jinja | Adds SECRET_KEY placeholder guard, resend-verification rate-limit settings, and Porkbun/base-domain settings. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/main.py.jinja | Replaces dashboard logo image with shared BrandMark. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/payment_modal.py | Improves payment modal “mode” display when provider isn’t configured. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/brand_mark.py.jinja | Adds shared brand mark control for auth shell + dashboard header. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/controls/auth/auth_shell.py.jinja | Switches auth shell branding to use BrandMark. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/security/rate_limit.py | Adds a separate resend-verification rate limiter + dependency. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/worker.py.jinja | Makes worker task endpoints admin-gated when auth is enabled. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/task_history.py.jinja | Makes task-history endpoints admin-gated when auth is enabled. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/scheduler.py.jinja | Makes scheduler endpoints admin-gated when auth is enabled. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/orgs/router.py.jinja | Caps invited role by caller role to prevent privilege escalation. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/metrics.py.jinja | Makes metrics endpoints admin-gated when auth is enabled. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/deps.py.jinja | Wires resend-verification rate limit dependency into deps exports. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/comms/router.py.jinja | Gates paid comms send endpoints behind admin/auth. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/auth/router.py.jinja | Adds typed responses, hides lockout enumeration, and adds resend-verification endpoint + rate limiting. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/main.py.jinja | Registers new dns CLI subcommand. |
| aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/dns.py | Adds DNS CLI commands backed by Porkbun adapter and deploy.yml IP discovery. |
| aegis/core/services.py | Registers resend_verification_rate_limit symbol wiring for auth service template wiring. |
| .gitignore | Ignores .docs-static/ build output. |
| .github/workflows/security.yml | Ignores a markdown advisory with no upstream fix version yet. |
fae5315 to
908295b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.