Technical documentation: [System name]
How to use this template
Each section answers one question, so readers can jump to theirs: Overview and Architecture explain what the system is and why; Setup and Usage are steps to follow; Reference is for looking things up; Troubleshooting is for when something fails. Keep explanation out of the steps and steps out of the explanation.
Delete what doesn't apply, replace every <placeholder> in the code, and update Last reviewed each time you check the document against the system.
Owner | |
Written for | |
Covers version | |
Last reviewed | |
Questions to |
Overview
What it does, for whom, and what it leaves to other systems.
Status:
Repository:
Runs on:
Depends on:
Used by:
Architecture
How the parts fit together. Add a diagram: a box per component, an arrow per call.
Component | What it does | Built with | Owner |
How a request moves through it
Why it's built this way:
Setup
Before you start
Tools and versions, access and who grants it, anything else needed first.
Install and run
Get the code:
git clone <repository-url> cd <repository>Configure:
Start it:
Check that it works:
Usage
One task per heading, starting with a verb. Copy down to the divider.
See an example task
Rotate the API signing key
Do this every 90 days, or at once if a key may have leaked. You need the keys:admin role.
1. Create the new key: keyctl create --service billing-api. It prints the new key's ID.
2. Add the ID to SIGNING_KEYS in the config, before the old one, and deploy. Both keys now verify; the new one signs.
3. After 24 hours, when no token signed with the old key is still valid, remove the old ID and deploy again.
4. Check the Auth dashboard: verification failures should stay at zero.
[Task name]
When you'd do this, and what you need first.
Reference
Configuration
Setting | Default | Required | What it does |
Example configuration file:
server:
port: 8080
database:
url: <connection string>
pool_size: 10
log_level: infoCommands, endpoints and limits
Commands or endpoints:
Limits:
Glossary
Term | What it means in this system |
Troubleshooting
Symptom or exact error | Likely cause | Fix |
Still stuck? Ask in [channel] with the version, the logs and the steps that led to the problem.