diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 302eb84723..18092591f6 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -98,7 +98,7 @@ jobs: branch: main event: push name: coverage-report - path: docs/tests/coverage + path: docs/reference/coverage - name: Deploy docs uses: mhausenblas/mkdocs-deploy-gh-pages@master diff --git a/docs/.pages b/docs/.pages index 587faad614..adf736b8af 100644 --- a/docs/.pages +++ b/docs/.pages @@ -1,10 +1,6 @@ nav: - - Home: - - README.md - - enrollment-pathways - - getting-started - - product-and-design - - development - - tests - - configuration - - deployment + - Overview: index.md + - explanation + - reference + - how-to + - tutorials diff --git a/docs/configuration/.pages b/docs/configuration/.pages deleted file mode 100644 index fbd15341fd..0000000000 --- a/docs/configuration/.pages +++ /dev/null @@ -1,10 +0,0 @@ -nav: - - README.md - - environment-variables.md - - data.md - - admin-interface.md - - content-security-policy.md - - oauth.md - - rate-limit.md - - recaptcha.md - - transit-agency.md diff --git a/docs/configuration/oauth.md b/docs/configuration/oauth.md deleted file mode 100644 index 19243d0b56..0000000000 --- a/docs/configuration/oauth.md +++ /dev/null @@ -1,42 +0,0 @@ -# OAuth settings - -Benefits can be configured to require users to authenticate with an OAuth [Open ID Connect (OIDC)](https://openid.net/connect/) -provider, before allowing the user to begin the Eligibility Verification process. - -This section describes the related settings and how to configure the application to enable this feature. - -## Authlib - -!!! tldr "Authlib docs" - - Read more about [configuring Authlib for Django](https://docs.authlib.org/en/latest/client/django.html) - -Benefits uses the open-source [Authlib](https://authlib.org/) for OAuth and OIDC client implementation. See the Authlib docs -for more details about what features are available. Specifically, from Authlib we: - -1. Create an OAuth client using the [Django configuration](#django-configuration) -1. Call `client.authorize_redirect()` to send the user into the OIDC server's authentication flow, with our authorization - callback URL -1. Upon the user returning from the OIDC Server with an access token, call `client.authorize_access_token()` to get a validated - id token from the OIDC server - -## Django configuration - -OAuth settings are configured as instances of the [`IdentityGatewayConfig` model][cdt-identity-model] (defined in the [`cdt_identity`][cdt-identity] Django application) and [`EnrollmentFlow` model](../development/models-migrations.md). - -The [data migration file](./data.md) contains sample values for a `IdentityGatewayConfig` and `EnrollmentFlow` configuration. You can set values for a real Open ID Connect provider in environment variables so that they are used instead of the sample values. - -## Django usage - -The [`benefits.oauth.client`][oauth-client] module defines helpers for registering OAuth clients, and creating instances for -use in e.g. views. - -- `oauth` is an `authlib.integrations.django_client.OAuth` instance - -Consumers call `benefits.oauth.client.create_client(oauth, flow)` with an `EnrollmentFlow` to obtain an Authlib client -instance. If a client for the flow has not been registered yet, `_register_provider(oauth_registry, flow)` uses data from the -given `EnrollmentFlow` to register the client into this instance and returns the client object. - -[oauth-client]: https://github.com/cal-itp/benefits/blob/main/benefits/oauth/client.py -[cdt-identity]: https://github.com/Office-of-Digital-Services/django-cdt-identity -[cdt-identity-model]: https://github.com/Office-of-Digital-Services/django-cdt-identity/blob/main/cdt_identity/models.py diff --git a/docs/deployment/.pages b/docs/deployment/.pages deleted file mode 100644 index e2c4d83c3f..0000000000 --- a/docs/deployment/.pages +++ /dev/null @@ -1,9 +0,0 @@ -nav: - - README.md - - infrastructure.md - - secrets.md - - release.md - - hotfix.md - - rollback.md - - troubleshooting.md - - workflows.md diff --git a/docs/deployment/workflows.md b/docs/deployment/workflows.md deleted file mode 100644 index a3d741c7d2..0000000000 --- a/docs/deployment/workflows.md +++ /dev/null @@ -1,37 +0,0 @@ -# Workflows - -The GitHub Actions deployment workflow configuration lives at [`.github/workflows/deploy.yml`][deploy]. - -!!! info - - The entire process from GitHub commit to full redeploy of the application can take from around 5 minutes to 10 minutes - or more depending on the deploy environment. Have patience! - -## Deployment steps - -The workflow is [triggered][gh-actions-trigger] with a `push` to the `main` branch or when a release candidate or release tag is created on any branch. It also responds to the `workflow_dispatch` event to allow manually triggering via the GitHub Actions UI. - -When a deployment workflow runs, the following steps are taken: - -### 1. Checkout code - -From the tip of the corresponding branch (e.g. `main`) or the tagged commit - -### 2. Authenticate to GHCR - -Using the `github.actor` and built-in `GITHUB_TOKEN` secret - -### 3. Build and push image to GitHub Container Registry (GHCR) - -Build the root [`Dockerfile`][dockerfile], tagging with the SHA from the HEAD commit or tagged commit. - -Push this image:tag into [GHCR][ghcr]. - -### 4. App Service deploy - -Push the new image:tag to the Azure App Service instance. - -[deploy]: https://github.com/cal-itp/benefits/blob/main/.github/workflows/deploy.yml -[dockerfile]: https://github.com/cal-itp/benefits/blob/main/appcontainer/Dockerfile -[ghcr]: https://github.com/features/packages -[gh-actions-trigger]: https://docs.github.com/en/actions/reference/events-that-trigger-workflows diff --git a/docs/enrollment-pathways/README.md b/docs/enrollment-pathways/README.md deleted file mode 100644 index ebb0b396d8..0000000000 --- a/docs/enrollment-pathways/README.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Introduction ---- - -# Enrollment pathways - -This section describes in more detail some of the different enrollment pathways with current or planned support in the Benefits application. - -## Current work - -We do sprint planning and track day-to-day work on our [Project Board][board]. - -See our [Milestones][milestones] for current work tracked against specific features and different enrollment pathways. - -## Product roadmap - -Our product roadmap captures what we're currently building, what we've built, and what we plan to build in the future. We update it at the end of each quarter or when priorities change. - -```mermaid -timeline - title Cal-ITP Benefits Product Roadmap -%% Cal-ITP Benefits Epics (2024) - section 2024 - - Q1
Complete - : Benefits admin tool (foundation) - : Deploy SBMTD Reduced Fare Mobility ID enrollment pathway - : Migrate to Littlepay Backoffice API - - Q2
Complete - : Support for expiring benefits (low-income) - : Improved UX for agency card enrollment - : Improved UX for application error states - - Q3
Complete - : Deploy low-income riders enrollment pathway - : Benefits admin tool (agency users) - : Benefits admin tool (in-person eligibility verification) - - Q4
Complete - : Deploy Medicare cardholder enrollment pathway - : Support for multiple identity providers (Medicare.gov) - -%% Cal-ITP Benefits Epics (2025) - section 2025 - - Q1
Complete - : Front-end enhancements and optimization - : Deploy in-person enrollments - : Utilize CDT Identity Gateway connection library - - Q2
Now - : Support for multiple transit processors (Enghouse) - : Enhanced Veteran eligibility checks (disability status) - - Q3
Next - : Support for additional identity provider - : Benefits admin tool (user management) - : Benefits admin tool (agency configuration) - - Q4
Projected - : Single eligibility check across multiple benefit options - : Eligibility check for individuals with disabilities (CA DMV) - : Support for Discover and American Express cards - -%%{ - init: { - 'logLevel': 'debug', - 'theme': 'default' , - 'themeVariables': { - 'cScale0': 'orange', - 'cScaleLabel0': 'black', - 'cScale1': 'yellow', - 'cScaleLabel1': 'black' - } - } -}%% -``` - -[board]: https://github.com/orgs/cal-itp/projects/8/views/1 -[milestones]: https://github.com/cal-itp/benefits/milestones diff --git a/docs/configuration/README.md b/docs/explanation/configuration.md similarity index 100% rename from docs/configuration/README.md rename to docs/explanation/configuration.md diff --git a/docs/deployment/README.md b/docs/explanation/deployment.md similarity index 61% rename from docs/deployment/README.md rename to docs/explanation/deployment.md index fa95a6377d..d28003f6d3 100644 --- a/docs/deployment/README.md +++ b/docs/explanation/deployment.md @@ -15,6 +15,37 @@ Registry (GHCR)][ghcr]. It also deploys to the Azure Web App, telling Azure to r You can view what Git commit is deployed for a given environment by visitng the URL path `/static/sha.txt`. +The GitHub Actions deployment workflow configuration lives at [`.github/workflows/deploy.yml`][deploy]. + +!!! info + + The entire process from GitHub commit to full redeploy of the application can take from around 5 minutes to 10 minutes + or more depending on the deploy environment. Have patience! + +## Deployment steps + +The workflow is [triggered][gh-actions-trigger] with a `push` to the `main` branch or when a release candidate or release tag is created on any branch. It also responds to the `workflow_dispatch` event to allow manually triggering via the GitHub Actions UI. + +When a deployment workflow runs, the following steps are taken: + +### 1. Checkout code + +From the tip of the corresponding branch (e.g. `main`) or the tagged commit + +### 2. Authenticate to GHCR + +Using the `github.actor` and built-in `GITHUB_TOKEN` secret + +### 3. Build and push image to GitHub Container Registry (GHCR) + +Build the root [`Dockerfile`][dockerfile], tagging with the SHA from the HEAD commit or tagged commit. + +Push this image:tag into [GHCR][ghcr]. + +### 4. App Service deploy + +Push the new image:tag to the Azure App Service instance. + ## Configuration Sensitive [configuration settings](../configuration/README.md) are maintained as Application Configuration variables in Azure, @@ -32,6 +63,8 @@ Docker images for each of the deploy branches are available from GitHub Containe [app-service-containers]: https://docs.microsoft.com/en-us/azure/app-service/configure-custom-container [app-service]: https://docs.microsoft.com/en-us/azure/app-service/overview [deploy-workflow]: https://github.com/cal-itp/benefits/blob/main/.github/workflows/deploy.yml -[dockerfile]: https://github.com/cal-itp/benefits/blob/main/Dockerfile [az-webapp]: https://azure.microsoft.com/en-us/services/app-service/containers/ [ghcr]: https://github.com/features/packages +[deploy]: https://github.com/cal-itp/benefits/blob/main/.github/workflows/deploy.yml +[dockerfile]: https://github.com/cal-itp/benefits/blob/main/appcontainer/Dockerfile +[gh-actions-trigger]: https://docs.github.com/en/actions/reference/events-that-trigger-workflows diff --git a/docs/development/.pages b/docs/explanation/development/.pages similarity index 100% rename from docs/development/.pages rename to docs/explanation/development/.pages diff --git a/docs/development/README.md b/docs/explanation/development/README.md similarity index 100% rename from docs/development/README.md rename to docs/explanation/development/README.md diff --git a/docs/development/application-logic.md b/docs/explanation/development/application-logic.md similarity index 100% rename from docs/development/application-logic.md rename to docs/explanation/development/application-logic.md diff --git a/docs/development/commits-branches-merging.md b/docs/explanation/development/commits-branches-merging.md similarity index 100% rename from docs/development/commits-branches-merging.md rename to docs/explanation/development/commits-branches-merging.md diff --git a/docs/development/docker-dynamic-ports.md b/docs/explanation/development/docker-dynamic-ports.md similarity index 100% rename from docs/development/docker-dynamic-ports.md rename to docs/explanation/development/docker-dynamic-ports.md diff --git a/docs/development/i18n.md b/docs/explanation/development/i18n.md similarity index 100% rename from docs/development/i18n.md rename to docs/explanation/development/i18n.md diff --git a/docs/development/img/docker-desktop-open-in-browser.png b/docs/explanation/development/img/docker-desktop-open-in-browser.png similarity index 100% rename from docs/development/img/docker-desktop-open-in-browser.png rename to docs/explanation/development/img/docker-desktop-open-in-browser.png diff --git a/docs/development/img/ports-local-address.png b/docs/explanation/development/img/ports-local-address.png similarity index 100% rename from docs/development/img/ports-local-address.png rename to docs/explanation/development/img/ports-local-address.png diff --git a/docs/development/img/vscode-debugger-launch-config.png b/docs/explanation/development/img/vscode-debugger-launch-config.png similarity index 100% rename from docs/development/img/vscode-debugger-launch-config.png rename to docs/explanation/development/img/vscode-debugger-launch-config.png diff --git a/docs/development/linting-pre-commit.md b/docs/explanation/development/linting-pre-commit.md similarity index 100% rename from docs/development/linting-pre-commit.md rename to docs/explanation/development/linting-pre-commit.md diff --git a/docs/development/models-migrations.md b/docs/explanation/development/models-migrations.md similarity index 100% rename from docs/development/models-migrations.md rename to docs/explanation/development/models-migrations.md diff --git a/docs/development/test-server.md b/docs/explanation/development/test-server.md similarity index 100% rename from docs/development/test-server.md rename to docs/explanation/development/test-server.md diff --git a/docs/enrollment-pathways/agency-cards.md b/docs/explanation/enrollment-pathways/agency-cards.md similarity index 100% rename from docs/enrollment-pathways/agency-cards.md rename to docs/explanation/enrollment-pathways/agency-cards.md diff --git a/docs/enrollment-pathways/low-income.md b/docs/explanation/enrollment-pathways/low-income.md similarity index 100% rename from docs/enrollment-pathways/low-income.md rename to docs/explanation/enrollment-pathways/low-income.md diff --git a/docs/enrollment-pathways/medicare-cardholders.md b/docs/explanation/enrollment-pathways/medicare-cardholders.md similarity index 100% rename from docs/enrollment-pathways/medicare-cardholders.md rename to docs/explanation/enrollment-pathways/medicare-cardholders.md diff --git a/docs/enrollment-pathways/older-adults.md b/docs/explanation/enrollment-pathways/older-adults.md similarity index 100% rename from docs/enrollment-pathways/older-adults.md rename to docs/explanation/enrollment-pathways/older-adults.md diff --git a/docs/enrollment-pathways/veterans.md b/docs/explanation/enrollment-pathways/veterans.md similarity index 100% rename from docs/enrollment-pathways/veterans.md rename to docs/explanation/enrollment-pathways/veterans.md diff --git a/docs/deployment/infrastructure.md b/docs/explanation/infrastructure.md similarity index 100% rename from docs/deployment/infrastructure.md rename to docs/explanation/infrastructure.md diff --git a/docs/configuration/transit-agency.md b/docs/explanation/transit-agency.md similarity index 100% rename from docs/configuration/transit-agency.md rename to docs/explanation/transit-agency.md diff --git a/docs/getting-started/.pages b/docs/getting-started/.pages deleted file mode 100644 index 6e3001b577..0000000000 --- a/docs/getting-started/.pages +++ /dev/null @@ -1,3 +0,0 @@ -nav: - - README.md - - documentation.md diff --git a/docs/tests/automated-tests.md b/docs/how-to/automated-tests.md similarity index 100% rename from docs/tests/automated-tests.md rename to docs/how-to/automated-tests.md diff --git a/docs/product-and-design/copy-delivery.md b/docs/how-to/copy-delivery.md similarity index 100% rename from docs/product-and-design/copy-delivery.md rename to docs/how-to/copy-delivery.md diff --git a/docs/getting-started/documentation.md b/docs/how-to/documentation.md similarity index 100% rename from docs/getting-started/documentation.md rename to docs/how-to/documentation.md diff --git a/docs/getting-started/README.md b/docs/how-to/getting-started.md similarity index 100% rename from docs/getting-started/README.md rename to docs/how-to/getting-started.md diff --git a/docs/deployment/hotfix.md b/docs/how-to/hotfix.md similarity index 100% rename from docs/deployment/hotfix.md rename to docs/how-to/hotfix.md diff --git a/docs/product-and-design/img/ditto-import-components.png b/docs/how-to/img/ditto-import-components.png similarity index 100% rename from docs/product-and-design/img/ditto-import-components.png rename to docs/how-to/img/ditto-import-components.png diff --git a/docs/getting-started/img/edit-pencil.png b/docs/how-to/img/edit-pencil.png similarity index 100% rename from docs/getting-started/img/edit-pencil.png rename to docs/how-to/img/edit-pencil.png diff --git a/docs/product-and-design/img/figma-ditto-plugin.png b/docs/how-to/img/figma-ditto-plugin.png similarity index 100% rename from docs/product-and-design/img/figma-ditto-plugin.png rename to docs/how-to/img/figma-ditto-plugin.png diff --git a/docs/tests/img/playwright-inspector.png b/docs/how-to/img/playwright-inspector.png similarity index 100% rename from docs/tests/img/playwright-inspector.png rename to docs/how-to/img/playwright-inspector.png diff --git a/docs/tests/manual-tests.md b/docs/how-to/manual-tests.md similarity index 100% rename from docs/tests/manual-tests.md rename to docs/how-to/manual-tests.md diff --git a/docs/deployment/release.md b/docs/how-to/release.md similarity index 100% rename from docs/deployment/release.md rename to docs/how-to/release.md diff --git a/docs/deployment/rollback.md b/docs/how-to/rollback.md similarity index 100% rename from docs/deployment/rollback.md rename to docs/how-to/rollback.md diff --git a/docs/deployment/troubleshooting.md b/docs/how-to/troubleshooting.md similarity index 97% rename from docs/deployment/troubleshooting.md rename to docs/how-to/troubleshooting.md index 0253b64399..81159da75b 100644 --- a/docs/deployment/troubleshooting.md +++ b/docs/how-to/troubleshooting.md @@ -40,8 +40,6 @@ You can troubleshoot Sentry itself by [turning on debug mode](../../configuratio ## Specific issues -This section serves as the [runbook](https://www.pagerduty.com/resources/learn/what-is-a-runbook/) for Benefits. - ### Terraform lock [General info](https://developer.hashicorp.com/terraform/language/state/locking) diff --git a/docs/README.md b/docs/index.md similarity index 79% rename from docs/README.md rename to docs/index.md index e70c7db149..3dea55b560 100644 --- a/docs/README.md +++ b/docs/index.md @@ -1,5 +1,79 @@ # Project overview +## Current work + +We do sprint planning and track day-to-day work on our [Project Board][board]. + +See our [Milestones][milestones] for current work tracked against specific features and different enrollment pathways. + +## Product roadmap + +Our product roadmap captures what we're currently building, what we've built, and what we plan to build in the future. We update it at the end of each quarter or when priorities change. + +```mermaid +timeline + title Cal-ITP Benefits Product Roadmap +%% Cal-ITP Benefits Epics (2024) + section 2024 + + Q1
Complete + : Benefits admin tool (foundation) + : Deploy SBMTD Reduced Fare Mobility ID enrollment pathway + : Migrate to Littlepay Backoffice API + + Q2
Complete + : Support for expiring benefits (low-income) + : Improved UX for agency card enrollment + : Improved UX for application error states + + Q3
Complete + : Deploy low-income riders enrollment pathway + : Benefits admin tool (agency users) + : Benefits admin tool (in-person eligibility verification) + + Q4
Complete + : Deploy Medicare cardholder enrollment pathway + : Support for multiple identity providers (Medicare.gov) + +%% Cal-ITP Benefits Epics (2025) + section 2025 + + Q1
Complete + : Front-end enhancements and optimization + : Deploy in-person enrollments + : Utilize CDT Identity Gateway connection library + + Q2
Now + : Support for multiple transit processors (Enghouse) + : Enhanced Veteran eligibility checks (disability status) + + Q3
Next + : Support for additional identity provider + : Benefits admin tool (user management) + : Benefits admin tool (agency configuration) + + Q4
Projected + : Single eligibility check across multiple benefit options + : Eligibility check for individuals with disabilities (CA DMV) + : Support for Discover and American Express cards + +%%{ + init: { + 'logLevel': 'debug', + 'theme': 'default' , + 'themeVariables': { + 'cScale0': 'orange', + 'cScaleLabel0': 'black', + 'cScale1': 'yellow', + 'cScaleLabel1': 'black' + } + } +}%% +``` + +[board]: https://github.com/orgs/cal-itp/projects/8/views/1 +[milestones]: https://github.com/cal-itp/benefits/milestones + This website provides technical documentation for the [`benefits`][benefits-repo] application from the [California Integrated Travel Project (Cal-ITP)][calitp]. diff --git a/docs/product-and-design/.pages b/docs/product-and-design/.pages deleted file mode 100644 index ba14f9b178..0000000000 --- a/docs/product-and-design/.pages +++ /dev/null @@ -1,7 +0,0 @@ -nav: - -- newsletter-archive.md -- analytics.md -- copy-delivery.md -- copy-style.md -- use-cases diff --git a/docs/product-and-design/use-cases/enrollment-use-cases.md b/docs/product-and-design/use-cases/enrollment-use-cases.md deleted file mode 100644 index 18a807f1df..0000000000 --- a/docs/product-and-design/use-cases/enrollment-use-cases.md +++ /dev/null @@ -1,32 +0,0 @@ -The use cases documented on this page focus on how the system is supposed to work from the perspective of the end user. - -### Use case: Enroll contactless card to receive transit benefit - -**Primary Actor**: Transit rider - -**Systems**: Benefits app, transit processor - -**Preconditions**: - -- Transit rider has confirmed their eligibility with the Benefits app -- Transit rider has their contactless card information available -- Benefits app is able to contact the transit processor - -**Trigger**: Transit rider initiates the enrollment phase - -**Basic flow**: - -1. Transit rider enters their contactless card information -2. Benefits app passes that information to the transit processor to enroll the card -3. Transit processor successfully enrolls card - -**Alternate flows**: - -- 3a. Transit processor returns with one of the following errors: card verification failed, token is invalid, or general server error - - - 3a1. Transit rider chooses to retry, starting back at initiating the enrollment phase - - 3b1. Transit rider leaves the Benefits app - -**Postconditions**: - -- Transit rider's contactless card is enrolled to receive the transit benefit diff --git a/docs/reference/.pages b/docs/reference/.pages new file mode 100644 index 0000000000..14a2eb8b07 --- /dev/null +++ b/docs/reference/.pages @@ -0,0 +1,3 @@ +nav: + - ... + - Coverage report: ./reference/coverage diff --git a/docs/configuration/admin-interface.md b/docs/reference/admin-interface.md similarity index 100% rename from docs/configuration/admin-interface.md rename to docs/reference/admin-interface.md diff --git a/docs/product-and-design/analytics.md b/docs/reference/analytics.md similarity index 100% rename from docs/product-and-design/analytics.md rename to docs/reference/analytics.md diff --git a/docs/configuration/content-security-policy.md b/docs/reference/content-security-policy.md similarity index 100% rename from docs/configuration/content-security-policy.md rename to docs/reference/content-security-policy.md diff --git a/docs/product-and-design/copy-style.md b/docs/reference/copy-style.md similarity index 100% rename from docs/product-and-design/copy-style.md rename to docs/reference/copy-style.md diff --git a/docs/configuration/environment-variables.md b/docs/reference/environment-variables.md similarity index 100% rename from docs/configuration/environment-variables.md rename to docs/reference/environment-variables.md diff --git a/docs/product-and-design/newsletter-archive.md b/docs/reference/newsletter-archive.md similarity index 100% rename from docs/product-and-design/newsletter-archive.md rename to docs/reference/newsletter-archive.md diff --git a/docs/configuration/rate-limit.md b/docs/reference/rate-limit.md similarity index 100% rename from docs/configuration/rate-limit.md rename to docs/reference/rate-limit.md diff --git a/docs/configuration/recaptcha.md b/docs/reference/recaptcha.md similarity index 100% rename from docs/configuration/recaptcha.md rename to docs/reference/recaptcha.md diff --git a/docs/tests/.pages b/docs/tests/.pages deleted file mode 100644 index ce4abbb86f..0000000000 --- a/docs/tests/.pages +++ /dev/null @@ -1,4 +0,0 @@ -nav: - - Automated tests: automated-tests.md - - Manual tests: manual-tests.md - - Coverage report: ./tests/coverage diff --git a/docs/configuration/data.md b/docs/tutorials/load-sample-data.md similarity index 99% rename from docs/configuration/data.md rename to docs/tutorials/load-sample-data.md index 6b5ac0303b..bee4b15b6f 100644 --- a/docs/configuration/data.md +++ b/docs/tutorials/load-sample-data.md @@ -1,4 +1,4 @@ -# Configuration data +# Loading sample data !!! example "Sample data fixtures" diff --git a/docs/deployment/secrets.md b/docs/tutorials/secrets.md similarity index 100% rename from docs/deployment/secrets.md rename to docs/tutorials/secrets.md