193 lines
5.5 KiB
Markdown
193 lines
5.5 KiB
Markdown
# NuQloud Milestone Issue List
|
||
|
||
Use these as initial issues/epics in `NuQloud-Nextcloud`.
|
||
|
||
## Milestone 0: Branch and repo bootstrap
|
||
|
||
### SC-0.1 Create product branch model
|
||
- Branch: `nuqloud/bootstrap-branch-model`
|
||
- Tasks:
|
||
1. Add `nuqloud` remote.
|
||
2. Create `nuqloud-bootstrap`.
|
||
3. Document merge flow from `origin/main`.
|
||
- Done when:
|
||
- Team can ship to product fork without touching core `main`.
|
||
|
||
### SC-0.2 Add docs baseline
|
||
- Branch: `nuqloud/docs-baseline`
|
||
- Tasks:
|
||
1. Add PRD + implementation matrix + milestone list.
|
||
2. Link from root `README` (product fork).
|
||
- Done when:
|
||
- Product and engineering scope are versioned.
|
||
|
||
## Milestone 1: Mode framework and naming
|
||
|
||
### SC-1.1 Implement `SC_MODE` persistence
|
||
- Branch: `nuqloud/mode-flag-persistence`
|
||
- Tasks:
|
||
1. Add admin setting for `powered|full_qortal`.
|
||
2. Persist and expose mode in app boot payload.
|
||
- Done when:
|
||
- UI can render mode-specific behavior.
|
||
|
||
### SC-1.2 Terminology mapping layer
|
||
- Branch: `nuqloud/ui-terminology-map`
|
||
- Tasks:
|
||
1. Create string mapping table.
|
||
2. Apply to dashboard, auth, settings, onboarding.
|
||
- Done when:
|
||
- Powered mode avoids wallet/seed/node language.
|
||
|
||
### SC-1.3 Debug mode isolation
|
||
- Branch: `nuqloud/debug-mode-gating`
|
||
- Tasks:
|
||
1. Admin-only guard.
|
||
2. Add visible warning banner.
|
||
- Done when:
|
||
- Debug data inaccessible to standard users.
|
||
|
||
## Milestone 2: Identity hardening and powered UX
|
||
|
||
### SC-2.1 NuQloud login UX pass
|
||
- Branch: `nuqloud/powered-auth-ux`
|
||
- Tasks:
|
||
1. Simplify login/onboarding copy.
|
||
2. Keep full mode untouched.
|
||
- Done when:
|
||
- New user flow is understandable without protocol knowledge.
|
||
|
||
### SC-2.2 Runtime security checks in scripts
|
||
- Branch: `nuqloud/script-security-guards`
|
||
- Tasks:
|
||
1. Ensure broker token/cors fail-fast checks.
|
||
2. Ensure app receives broker token env where required.
|
||
- Done when:
|
||
- Startup/recreate cannot silently run insecure.
|
||
|
||
### SC-2.3 Claims-language pass
|
||
- Branch: `nuqloud/claims-language-policy`
|
||
- Tasks:
|
||
1. Replace absolute security claims in UI/docs.
|
||
2. Add standardized trust language.
|
||
- Done when:
|
||
- Marketing and technical claims are defensible.
|
||
|
||
## Milestone 3: NuQloud backup and proofs
|
||
|
||
### SC-3.1 Backup proof model
|
||
- Branch: `nuqloud/backup-proof-model`
|
||
- Tasks:
|
||
1. Define backup proof schema.
|
||
2. Store and display proof metadata.
|
||
- Done when:
|
||
- Each backup has verifiable proof record.
|
||
|
||
### SC-3.2 Restore preview integrity gate
|
||
- Branch: `nuqloud/restore-preview-integrity`
|
||
- Tasks:
|
||
1. Verify integrity before restore action.
|
||
2. Expose status and failure reason.
|
||
- Done when:
|
||
- Restore cannot proceed on failed verification.
|
||
|
||
## Milestone 4: Replication status and packages
|
||
|
||
### SC-4.1 Replication status dashboard
|
||
- Branch: `nuqloud/replication-status-ui`
|
||
- Tasks:
|
||
1. Show target replicas vs healthy replicas.
|
||
2. Show degraded/healthy/error states.
|
||
- Done when:
|
||
- Admin sees clear replication health at a glance.
|
||
|
||
### SC-4.2 Package enforcement
|
||
- Branch: `nuqloud/package-limits-enforcement`
|
||
- Tasks:
|
||
1. Implement tier config + capacity limits.
|
||
2. Enforce limits with actionable UI messaging.
|
||
- Done when:
|
||
- Tier limits are consistently enforced.
|
||
|
||
### SC-4.3 Capacity add-on model
|
||
- Branch: `nuqloud/capacity-addon-metering`
|
||
- Tasks:
|
||
1. Implement capacity-block accounting hooks.
|
||
2. Add over-capacity warnings and controls.
|
||
- Done when:
|
||
- Capacity scaling is predictable and auditable.
|
||
|
||
### SC-4.4 Payment webhook ingest + idempotency
|
||
- Branch: `nuqloud/payment-webhook-ingest`
|
||
- Tasks:
|
||
1. Add webhook endpoint with signature verification.
|
||
2. Add idempotent purchase ledger writes using invoice/event ref.
|
||
3. Update entitlements from plan line items.
|
||
- Done when:
|
||
- Duplicate webhooks do not double-credit balances.
|
||
|
||
## Milestone 5: Credits and billing abstraction
|
||
|
||
### SC-5.1 Credits display abstraction
|
||
- Branch: `nuqloud/credits-ui-layer`
|
||
- Tasks:
|
||
1. Hide QORT as credits in powered mode.
|
||
2. Keep full mode native.
|
||
- Done when:
|
||
- Powered users never need token literacy.
|
||
|
||
### SC-5.2 Credit ledger core
|
||
- Branch: `nuqloud/credit-ledger-core`
|
||
- Tasks:
|
||
1. Implement ledger model + event types.
|
||
2. Add admin usage view/export.
|
||
- Done when:
|
||
- Consumption events are traceable.
|
||
|
||
### SC-5.3 Consume/refund transaction safety
|
||
- Branch: `nuqloud/credits-consume-refund-atomic`
|
||
- Tasks:
|
||
1. Add atomic consume endpoint with idempotent ref key.
|
||
2. Add refund compensation endpoint for failed publishes.
|
||
3. Enforce no-negative-balance invariant under concurrency.
|
||
- Done when:
|
||
- Publish retries cannot overcharge or produce negative balances.
|
||
|
||
## Milestone 6: Marketplace readiness
|
||
|
||
### SC-6.1 Install flow simplification
|
||
- Branch: `nuqloud/install-flow-polish`
|
||
- Tasks:
|
||
1. Improve installer prompts and defaults.
|
||
2. Validate secure-by-default paths.
|
||
- Done when:
|
||
- Install path is predictable for 8–16GB VM targets.
|
||
|
||
### SC-6.2 Documentation packs
|
||
- Branch: `nuqloud/docs-marketplace-pack`
|
||
- Tasks:
|
||
1. Admin quickstart (powered).
|
||
2. Full mode guide.
|
||
3. Security and backup guarantees page.
|
||
- Done when:
|
||
- Docs support app-store review and customer onboarding.
|
||
|
||
### SC-6.3 Intro grant workflow
|
||
- Branch: `nuqloud/intro-grant-workflow`
|
||
- Tasks:
|
||
1. Add one-time grant request UI and API.
|
||
2. Add management approval/reject actions.
|
||
3. Persist and enforce one-grant-per-instance policy.
|
||
- Done when:
|
||
- Intro grants are controlled, auditable, and non-repeatable.
|
||
|
||
## Suggested branch naming convention
|
||
|
||
`nuqloud/<milestone-or-area>-<short-topic>`
|
||
|
||
Examples:
|
||
|
||
1. `nuqloud/m1-mode-persistence`
|
||
2. `nuqloud/m3-backup-proof-schema`
|
||
3. `nuqloud/m4-replication-health-panel`
|