Shared Django runtime foundations for Baltimore civic applications
Project description
baltimore-patapsco (Python)
Reusable Django runtime primitives for Baltimore civic applications.
INSTALLED_APPS += ["baltimore.patapsco"]
MIDDLEWARE += ["baltimore.patapsco.observability.RequestContextMiddleware"]
REST_FRAMEWORK = {
"EXCEPTION_HANDLER": "baltimore.patapsco.api.exception_handler",
}
urlpatterns = [path("", include("baltimore.patapsco.urls"))]
Stable health and readiness views
Applications that mount or extend the operational views directly use the public facade:
from baltimore.patapsco.api import HealthView, ReadinessView
HealthView is process-only liveness. ReadinessView runs the established
database check and returns its public-safe 200 or 503 status document. Both use
no authentication classes and AllowAny, and both remain ordinary DRF
APIView classes with as_view().
An application may subclass either class, override get(), and call
super().get(request) before composing app-owned public-safe checks. The parent
response status, request ID, and database result remain the starting contract;
the application owns an explicit serializer and OpenAPI annotation for any
extended payload.
The previous baltimore.patapsco.api.views imports resolve to the same class
objects for compatibility. DiagnosticsView remains available only from that
module and through the packaged URL configuration; it is intentionally absent
from baltimore.patapsco.api.__all__ because its staff/public policy is a
separate operational surface. The settings-free package root exports neither
view class.
api_error_response() and the DRF exception handler force every 5xx response to
the public internal_error code, generic message, and no details. Application
callers cannot opt a server failure out of that safety boundary.
Use build_logging_config() for the shared JSON/pretty log shape. Modules are
incrementally adoptable; installing the package does not enable auth, email, or
Sentry by itself.
Sentry privacy defaults
Install the observability extra and call the shared initializer only when a DSN
is configured:
from baltimore.patapsco.observability import configure_sentry
configure_sentry(
environment="production",
release="my-app@1.2.3",
traces_sample_rate=0.1,
)
configure_sentry() is deny-by-default: it disables automatic PII, request-body
capture, and stack-frame local variables. Its event pipeline also removes request
cookies and query strings, strips query/fragment data from request URLs, and
recursively redacts Sentry's credential/session denylist plus common civic contact
and precise-location fields. Safe operational fields such as request IDs, routes,
and HTTP methods remain available.
Redaction is key-based. Applications must not attach sensitive values under misleading keys or place resident data in exception messages. Product-specific fields still require a privacy review before being added to Sentry context.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file baltimore_patapsco-0.2.0.tar.gz.
File metadata
- Download URL: baltimore_patapsco-0.2.0.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7908b84ee741b37dc2cec0d6830c0c89c2ccb526410ef84ee89eb5b4d5bfbb62
|
|
| MD5 |
e36e45702b16e987c9797aaf02ee02b7
|
|
| BLAKE2b-256 |
fe841ca8eb429b7bbc951400ba4545be8d5b59726d769b4fd2590aa964c8d8f6
|
File details
Details for the file baltimore_patapsco-0.2.0-py3-none-any.whl.
File metadata
- Download URL: baltimore_patapsco-0.2.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db372085e6cd766da0d826344bb9f7c1dc1d65acf3008827fd9da1c1cf09b944
|
|
| MD5 |
ccd7bab920322964baabe30d8f1f238c
|
|
| BLAKE2b-256 |
80c91ec293f1925922e866755d2fa4a648462cda768702830a5d20a1cc99c584
|