Files

193 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 816GB 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`