mirror of
https://github.com/harivansh-afk/betterNAS.git
synced 2026-04-15 08:03:42 +00:00
1.6 KiB
1.6 KiB
@betternas/contracts
This package is the machine-readable source of truth for shared interfaces in betterNAS.
Use it to keep the four product parts aligned:
- NAS node
- control plane
- local device
- cloud/web layer
What belongs here
- OpenAPI source documents
- shared TypeScript types
- route constants
- JSON schemas for payloads we want to validate outside TypeScript
What does not belong here
- business logic
- per-service config
- implementation-specific helpers
Current contract layers
src/control-plane.ts- current runtime scaffold for health and version
src/foundation.ts- first product-level entities and route constants for node, mount, and cloud flows
openapi/- language-neutral source documents for future SDK generation
schemas/- JSON schema mirrors for the first shared entities
Change rules
- Shared API shape changes happen here first.
- If the boundary changes, also update
docs/architecture.md. - Prefer additive changes until all four parts are live.
- Do not put Nextcloud-only assumptions into the core contracts unless the field is explicitly part of the cloud adapter.
- Keep the first version narrow. Over-modeling early is another form of drift.