This commit is contained in:
Harivansh Rathi 2026-04-01 02:27:08 +00:00
parent 7ae2b7a71c
commit 4ac6275dbf
20 changed files with 83 additions and 83 deletions

View file

@ -1,18 +1,18 @@
# aiNAS Architecture Boundary
# betterNAS Architecture Boundary
## Core Decision
aiNAS treats Nextcloud as an upstream backend, not as the place where aiNAS product logic should accumulate.
betterNAS treats Nextcloud as an upstream backend, not as the place where betterNAS product logic should accumulate.
That leads to three explicit boundaries:
1. `apps/ainas-controlplane/` is a thin shell inside Nextcloud.
2. `exapps/control-plane/` owns aiNAS business logic and internal APIs.
2. `exapps/control-plane/` owns betterNAS business logic and internal APIs.
3. `packages/contracts/` defines the interface between the shell app and the control plane.
## Why This Boundary Exists
Forking `nextcloud/server` would force aiNAS to own upstream patching and compatibility work too early. Pushing aiNAS logic into a traditional Nextcloud app would make the product harder to evolve outside the PHP monolith. The scaffold in this repository is designed to avoid both traps.
Forking `nextcloud/server` would force betterNAS to own upstream patching and compatibility work too early. Pushing betterNAS logic into a traditional Nextcloud app would make the product harder to evolve outside the PHP monolith. The scaffold in this repository is designed to avoid both traps.
## Responsibilities
@ -22,12 +22,12 @@ The shell app is responsible for:
- navigation entries
- branded entry pages inside Nextcloud
- admin-facing integration surfaces
- adapter calls into the aiNAS control plane
- adapter calls into the betterNAS control plane
The shell app is not responsible for:
- storage policy rules
- orchestration logic
- aiNAS-native RBAC decisions
- betterNAS-native RBAC decisions
- product workflows that may later be reused by desktop, iOS, or standalone web clients
### Control-plane service
@ -35,7 +35,7 @@ The shell app is not responsible for:
The control plane is responsible for:
- domain logic
- policy decisions
- internal APIs consumed by aiNAS surfaces
- internal APIs consumed by betterNAS surfaces
- Nextcloud integration adapters kept at the service boundary
### Shared contracts
@ -48,7 +48,7 @@ The local development stack uses Docker Compose so developers can bring up:
- Nextcloud
- PostgreSQL
- Redis
- the aiNAS control-plane service
- the betterNAS control-plane service
The Nextcloud shell app is mounted as a custom app and enabled through `./scripts/dev-up`.