Skip to content

Commit

Permalink
Fix broken Markdown references (#216)
Browse files Browse the repository at this point in the history
## Changes

Fix various broken Markdown [links that are now being reported by the
infra template's Markdown Link Checker
CI](https://github.com/navapbc/pfml-starter-kit-app/actions/runs/7202268166/job/19620064707).
  • Loading branch information
sawyerh authored Dec 14, 2023
1 parent db2421e commit 0dd8c92
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 27 deletions.
24 changes: 1 addition & 23 deletions docs/app/api-details.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,6 @@ See [Technical Overview](./technical-overview.md) for details on the technologie

Each endpoint is configured in the [openapi.generated.yml](/app/openapi.generated.yml) file which provides basic request validation. Each endpoint specifies an `operationId` that maps to a function defined in the code that will handle the request.

To make handling a request easier, an [ApiContext](/app/src/util/api_context.py) exists which will fetch the DB session, request body, and current user. This can be used like so:
```py
def example_post() -> flask.Response:
with api_context_manager() as api_context:
# Work with the request body
first_name = api_context.request_body["first_name"]

# Work with the user
current_user = api_context.current_user

# Work with the DB session
api_context.db_session.query(..)

# Return a response
return response_util.success_response(
message="Success",
data={"db_model_id": "1234"}, # Whatever the response object should be
status_code=201
)
```
For more complex usages, it is recommended you put the implementation into a separate handler file in order to keep the API entrypoints easier to read.

# Swagger

The Swagger UI can be reached locally at [http://localhost:8080/docs](http://localhost:8080/docs) when running the API. The UI is based on the [openapi.generated.yml](/app/openapi.generated.yml) file.
Expand All @@ -39,7 +17,7 @@ All model schemas defined can be found at the bottom of the UI.
# Routes

## Health Check
[GET /v1/healthcheck](/app/src/route/healthcheck.py) is an endpoint for checking the health of the service. It verifies that the database is reachable, and that the API service itself is up and running.
[GET /v1/healthcheck](/app/src/api/healthcheck.py) is an endpoint for checking the health of the service. It verifies that the database is reachable, and that the API service itself is up and running.

Note this endpoint explicitly does not require authorization so it can be integrated with any automated monitoring you may build.

Expand Down
2 changes: 1 addition & 1 deletion docs/app/database/database-access-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This document describes the best practices and patterns for how the application

## Client Initialization and Configuration

The database client is initialized when the application starts (see [src/\_\_main\_\_.py](../../../app/src/app.py). The database engine that is used to create acquire connections to the database is initialized using the database configuration defined in [db_config.py](../../../app/src/db/db_config.py), which is configured through environment variables. The initialized database client is then stored on the Flask app's [\`extensions\` dictionary](https://flask.palletsprojects.com/en/2.2.x/src/#flask.Flask.extensions) to be used throughout the lifetime of the application.
The database client is initialized when the application starts (see [`src/__main__.py`](../../../app/src/app.py)). The database engine that is used to acquire connections to the database is initialized using the database configuration defined in [postgres_config.py](../../../app/src/adapters/db/clients/postgres_config.py), which is configured through environment variables. The initialized database client is then stored on the Flask app's [`extensions` dictionary](https://flask.palletsprojects.com/en/2.2.x/extensions/) to be used throughout the lifetime of the application.

## Session Management

Expand Down
4 changes: 3 additions & 1 deletion docs/app/database/database-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,10 @@ $ make db-migrate
<details>
<summary>Example: Adding a new column to an existing table:</summary>

1. Manually update the database models with the changes ([example_models.py](/app/src/db/models/example_models.py) in this example)
1. Manually update the database models with the changes
```python
# src/db/models/example_models.py

class ExampleTable(Base):
...
my_new_timestamp = Column(TIMESTAMP(timezone=True)) # Newly added line
Expand Down
3 changes: 1 addition & 2 deletions docs/app/technical-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
- [Request operations](#request-operations)
- [Authentication](#authentication)
- [Authorization](#authorization)
- [Running In Hosted Environments](#running-in-hosted-environments)
- [ECS](#ecs)

## Key Technologies

Expand Down Expand Up @@ -38,6 +36,7 @@ generally preferred.
[sqlalchemy-src]: https://github.com/sqlalchemy/sqlalchemy

[alembic-home]: https://alembic.sqlalchemy.org/en/latest/
[alembic-src]: https://github.com/sqlalchemy/alembic

## Request operations

Expand Down

0 comments on commit 0dd8c92

Please sign in to comment.