Published empty on purpose: identity is the expensive part to change later, the feature is the cheap part to add. One route, two placeholder panels, no tables and no sidecar.
32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# Finances
|
|
|
|
Money, on your own machine.
|
|
|
|
**This is a skeleton.** The repository, the mount prefix (`/finances`, `/api/finances`) and the permission
|
|
key (`finances`) are real and settled. What the plugin actually does is not written yet — the two panels
|
|
render a placeholder and the one route answers `GET /api/finances/ping`.
|
|
|
|
Published in this state on purpose: the identity of a plugin is the part that is expensive to change
|
|
later, and the feature is the part that is cheap to add.
|
|
|
|
## What it ships
|
|
|
|
| Part | Present | Note |
|
|
| ------------------ | ------- | ------------------------------------------------------------ |
|
|
| `manifest.ts` | yes | identity, one permission |
|
|
| `api/router.ts` | yes | one route, mounted at `/api/finances` |
|
|
| `web/` | yes | two placeholder panels and a layout |
|
|
| `db/schema.ts` | no | no tables until the data model is settled |
|
|
| `sidecar/` | no | nothing long-lived yet |
|
|
| `assets/icon.png` | no | the dock falls back to the manifest's lucide `Wallet` |
|
|
|
|
## Installing
|
|
|
|
It is on disk and not installed until you install it from `/plugins`. Being in the tree makes it appear
|
|
on that page; it mounts nothing until then.
|
|
|
|
## Further reading
|
|
|
|
`plugins/example` in the platform repo is the reference plugin and documents every convention this one
|
|
follows.
|