native-update 2.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +28 -14
- package/android/manifest-additions.xml +28 -0
- package/android/src/main/AndroidManifest.xml +3 -7
- package/android/src/main/java/com/aoneahsan/nativeupdate/BackgroundNotificationManager.kt +21 -13
- package/android/src/main/java/com/aoneahsan/nativeupdate/LiveUpdatePlugin.kt +196 -29
- package/android/src/main/java/com/aoneahsan/nativeupdate/NativeUpdatePlugin.kt +21 -36
- package/cli/AGENTS.md +15 -1
- package/cli/CLAUDE.md +15 -1
- package/cli/commands/backend-create.js +56 -15
- package/cli/commands/bundle-create.js +39 -7
- package/cli/commands/monitor.js +72 -51
- package/cli/index.js +10 -24
- package/cli/package.json +11 -3
- package/dist/esm/app-review/app-review-manager.js +0 -1
- package/dist/esm/app-review/index.js +0 -1
- package/dist/esm/app-review/platform-review-handler.js +0 -1
- package/dist/esm/app-review/review-conditions-checker.js +0 -1
- package/dist/esm/app-review/review-rate-limiter.js +0 -1
- package/dist/esm/app-review/types.js +0 -1
- package/dist/esm/app-update/app-update-checker.js +0 -1
- package/dist/esm/app-update/app-update-installer.d.ts +1 -0
- package/dist/esm/app-update/app-update-installer.js +19 -8
- package/dist/esm/app-update/app-update-manager.js +0 -1
- package/dist/esm/app-update/app-update-notifier.js +0 -1
- package/dist/esm/app-update/index.js +0 -1
- package/dist/esm/app-update/platform-app-update.js +12 -3
- package/dist/esm/app-update/types.js +0 -1
- package/dist/esm/background-update/background-scheduler.js +0 -1
- package/dist/esm/background-update/index.js +0 -1
- package/dist/esm/background-update/notification-manager.js +0 -1
- package/dist/esm/config/support.js +0 -1
- package/dist/esm/core/analytics.d.ts +13 -0
- package/dist/esm/core/analytics.js +15 -1
- package/dist/esm/core/cache-manager.js +0 -1
- package/dist/esm/core/config.d.ts +0 -15
- package/dist/esm/core/config.js +0 -4
- package/dist/esm/core/errors.d.ts +1 -0
- package/dist/esm/core/errors.js +1 -1
- package/dist/esm/core/event-emitter.d.ts +0 -3
- package/dist/esm/core/event-emitter.js +8 -3
- package/dist/esm/core/logger.js +0 -1
- package/dist/esm/core/performance.js +0 -1
- package/dist/esm/core/plugin-manager.js +3 -1
- package/dist/esm/core/security.d.ts +11 -0
- package/dist/esm/core/security.js +27 -1
- package/dist/esm/definitions.d.ts +0 -11
- package/dist/esm/definitions.js +0 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +3 -1
- package/dist/esm/live-update/bundle-manager.d.ts +8 -0
- package/dist/esm/live-update/bundle-manager.js +20 -1
- package/dist/esm/live-update/certificate-pinning.js +0 -1
- package/dist/esm/live-update/delta-processor.d.ts +1 -1
- package/dist/esm/live-update/delta-processor.js +3 -1
- package/dist/esm/live-update/download-manager.js +9 -2
- package/dist/esm/live-update/rollout-checker.d.ts +1 -1
- package/dist/esm/live-update/rollout-checker.js +5 -6
- package/dist/esm/live-update/update-manager.js +0 -1
- package/dist/esm/live-update/version-manager.d.ts +0 -12
- package/dist/esm/live-update/version-manager.js +0 -68
- package/dist/esm/plugin.js +69 -43
- package/dist/esm/security/crypto.js +11 -7
- package/dist/esm/security/validator.js +0 -1
- package/dist/esm/types/rollout.d.ts +85 -0
- package/dist/esm/types/rollout.js +25 -0
- package/dist/esm/web.d.ts +8 -0
- package/dist/esm/web.js +148 -54
- package/dist/plugin.cjs.js +1 -2
- package/dist/plugin.esm.js +1 -2
- package/dist/plugin.js +2 -3
- package/docs/CHANGELOG.md +124 -0
- package/docs/CLAUDE.md +1 -1
- package/docs/MANUAL-TASKS.md +17 -0
- package/docs/MARKETING_WEBSITE_TRACKER.md +18 -2
- package/docs/MIGRATION.md +83 -0
- package/docs/PACKAGES.md +167 -0
- package/docs/PERFORMANCE.md +110 -0
- package/docs/PROJECT_COMPLETION_TRACKER.md +4 -35
- package/docs/README.md +0 -1
- package/docs/REMAINING_FEATURES.md +123 -76
- package/docs/ROADMAP.md +200 -120
- package/docs/SECURITY-IF-REPO-PUBLIC.md +232 -0
- package/docs/TESTING_REQUIREMENTS.md +1 -112
- package/docs/ai-knowledge-base/00-project-profile.md +38 -0
- package/docs/ai-knowledge-base/01-features.md +46 -0
- package/docs/ai-knowledge-base/02-routes.md +72 -0
- package/docs/ai-knowledge-base/03-tech-stack.md +57 -0
- package/docs/ai-knowledge-base/README.md +23 -0
- package/docs/analytics-tracking.md +37 -0
- package/docs/capacitor-official-plugins.md +46 -0
- package/docs/capawesome-plugins.md +29 -0
- package/docs/deployment/HOSTINGER_DEPLOY.md +75 -34
- package/docs/deployment/PRODUCTION-DEPLOY-CHECKLIST.md +184 -0
- package/docs/docs-site/plan.md +201 -0
- package/docs/docs-site/scope.md +127 -0
- package/docs/docs-site/tracker.json +235 -0
- package/docs/error-handling-tracking.md +37 -0
- package/docs/guides/testing-guide.md +15 -41
- package/docs/package-audit.md +41 -0
- package/docs/play-store/ASO-METADATA.md +5 -0
- package/docs/play-store/DATA-SAFETY.md +5 -0
- package/docs/play-store/DECLARATIONS.md +5 -0
- package/docs/play-store/README.md +27 -0
- package/docs/play-store/RELEASE-NOTES.md +99 -0
- package/docs/play-store/RELEASE-STEPS.md +6 -0
- package/docs/play-store/STORE-LISTING.md +7 -0
- package/docs/play-store/SUBMISSION-CHECKLIST.md +5 -0
- package/docs/production-readiness.md +1 -1
- package/docs/project-audit/2026-05-16/00-FINALIZATION-PLAN.md +123 -0
- package/docs/project-audit/2026-05-16/01-BATCH-PLAN.md +227 -0
- package/docs/project-audit/2026-05-16/02-AUDIT-FINDINGS.md +144 -0
- package/docs/project-audit/2026-05-16/sessions/batch-01.md +42 -0
- package/docs/project-audit/2026-05-16/sessions/batch-02.md +74 -0
- package/docs/project-audit/2026-05-16/sessions/batch-03.md +71 -0
- package/docs/project-audit/2026-05-16/sessions/batch-04.md +88 -0
- package/docs/project-audit/2026-05-16/sessions/batch-05.md +63 -0
- package/docs/project-audit/2026-05-16/sessions/batch-06.md +103 -0
- package/docs/project-audit/2026-05-16/sessions/batch-07.md +61 -0
- package/docs/project-audit/2026-05-16/sessions/batch-08.md +101 -0
- package/docs/project-audit/2026-05-16/sessions/batch-09.md +105 -0
- package/docs/project-audit/2026-05-16/sessions/batch-10.md +102 -0
- package/docs/project-audit/AUDIT-HISTORY.md +74 -0
- package/docs/project-audit/BATCH-PLAN.md +168 -0
- package/docs/project-audit/MARKETING-WEBSITE-FINDINGS-2026-05-11.md +73 -0
- package/docs/project-audit/PRODUCTION-READINESS-AUDIT-2026-05-08.md +275 -0
- package/docs/project-finalization/00-tracker.json +60 -0
- package/docs/project-knowledge-base/01-system-overview.md +39 -30
- package/docs/project-knowledge-base/02-routes-pages-forms-users.md +87 -81
- package/docs/project-knowledge-base/03-tech-stack-modules-services.md +140 -108
- package/docs/project-knowledge-base/04-data-models-integrations.md +191 -254
- package/docs/project-knowledge-base/05-docs-corpus-inventory.md +83 -20
- package/docs/project-knowledge-base/06-operations-testing-legal-content.md +67 -29
- package/docs/project-knowledge-base/README.md +27 -14
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-05-19.md +81 -0
- package/docs/rules-tracker.md +102 -0
- package/docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md +116 -0
- package/docs/social-media-marketing/README.md +81 -0
- package/docs/social-media-marketing/posts-batch-01.md +613 -0
- package/docs/social-media-marketing/posts-batch-02.md +528 -0
- package/docs/social-media-marketing/whatsapp-messages-batch-01.md +458 -0
- package/docs/social-media-marketing/whatsapp-status-batch-01.md +355 -0
- package/docs/tracking/finalization-2026-05-16-tracker.json +346 -0
- package/docs/tracking/full-audit-tracker.json +121 -0
- package/docs/tracking/production-readiness-audit-tracker.json +429 -0
- package/ios/Plugin/BackgroundUpdate/BackgroundUpdatePlugin.swift +16 -3
- package/ios/Plugin/LiveUpdate/LiveUpdatePlugin.swift +71 -47
- package/ios/Plugin/NativeUpdatePlugin.swift +14 -9
- package/package.json +29 -29
- package/cli/node_modules/.yarn-integrity +0 -16
- package/cli/node_modules/commander/LICENSE +0 -22
- package/cli/node_modules/commander/Readme.md +0 -1148
- package/cli/node_modules/commander/esm.mjs +0 -16
- package/cli/node_modules/commander/index.js +0 -26
- package/cli/node_modules/commander/lib/argument.js +0 -145
- package/cli/node_modules/commander/lib/command.js +0 -2179
- package/cli/node_modules/commander/lib/error.js +0 -43
- package/cli/node_modules/commander/lib/help.js +0 -462
- package/cli/node_modules/commander/lib/option.js +0 -329
- package/cli/node_modules/commander/lib/suggestSimilar.js +0 -100
- package/cli/node_modules/commander/package-support.json +0 -16
- package/cli/node_modules/commander/package.json +0 -80
- package/cli/node_modules/commander/typings/esm.d.mts +0 -3
- package/cli/node_modules/commander/typings/index.d.ts +0 -884
- package/cli/yarn.lock +0 -8
- package/dist/esm/__tests__/bundle-manager.test.d.ts +0 -1
- package/dist/esm/__tests__/bundle-manager.test.js +0 -151
- package/dist/esm/__tests__/bundle-manager.test.js.map +0 -1
- package/dist/esm/__tests__/config.test.d.ts +0 -1
- package/dist/esm/__tests__/config.test.js +0 -70
- package/dist/esm/__tests__/config.test.js.map +0 -1
- package/dist/esm/__tests__/delta-processor.test.d.ts +0 -1
- package/dist/esm/__tests__/delta-processor.test.js +0 -77
- package/dist/esm/__tests__/delta-processor.test.js.map +0 -1
- package/dist/esm/__tests__/firestore-schema.test.d.ts +0 -1
- package/dist/esm/__tests__/firestore-schema.test.js +0 -74
- package/dist/esm/__tests__/firestore-schema.test.js.map +0 -1
- package/dist/esm/__tests__/integration.test.d.ts +0 -1
- package/dist/esm/__tests__/integration.test.js +0 -78
- package/dist/esm/__tests__/integration.test.js.map +0 -1
- package/dist/esm/__tests__/manifest-reader.test.d.ts +0 -1
- package/dist/esm/__tests__/manifest-reader.test.js +0 -271
- package/dist/esm/__tests__/manifest-reader.test.js.map +0 -1
- package/dist/esm/__tests__/rollout-checker.test.d.ts +0 -1
- package/dist/esm/__tests__/rollout-checker.test.js +0 -210
- package/dist/esm/__tests__/rollout-checker.test.js.map +0 -1
- package/dist/esm/__tests__/security-enforcement.test.d.ts +0 -1
- package/dist/esm/__tests__/security-enforcement.test.js +0 -95
- package/dist/esm/__tests__/security-enforcement.test.js.map +0 -1
- package/dist/esm/__tests__/security.test.d.ts +0 -1
- package/dist/esm/__tests__/security.test.js +0 -54
- package/dist/esm/__tests__/security.test.js.map +0 -1
- package/dist/esm/__tests__/version-manager.test.d.ts +0 -1
- package/dist/esm/__tests__/version-manager.test.js +0 -45
- package/dist/esm/__tests__/version-manager.test.js.map +0 -1
- package/dist/esm/app-review/app-review-manager.js.map +0 -1
- package/dist/esm/app-review/index.js.map +0 -1
- package/dist/esm/app-review/platform-review-handler.js.map +0 -1
- package/dist/esm/app-review/review-conditions-checker.js.map +0 -1
- package/dist/esm/app-review/review-rate-limiter.js.map +0 -1
- package/dist/esm/app-review/types.js.map +0 -1
- package/dist/esm/app-update/app-update-checker.js.map +0 -1
- package/dist/esm/app-update/app-update-installer.js.map +0 -1
- package/dist/esm/app-update/app-update-manager.js.map +0 -1
- package/dist/esm/app-update/app-update-notifier.js.map +0 -1
- package/dist/esm/app-update/index.js.map +0 -1
- package/dist/esm/app-update/platform-app-update.js.map +0 -1
- package/dist/esm/app-update/types.js.map +0 -1
- package/dist/esm/background-update/background-scheduler.js.map +0 -1
- package/dist/esm/background-update/index.js.map +0 -1
- package/dist/esm/background-update/notification-manager.js.map +0 -1
- package/dist/esm/config/support.js.map +0 -1
- package/dist/esm/core/analytics.js.map +0 -1
- package/dist/esm/core/cache-manager.js.map +0 -1
- package/dist/esm/core/config.js.map +0 -1
- package/dist/esm/core/errors.js.map +0 -1
- package/dist/esm/core/event-emitter.js.map +0 -1
- package/dist/esm/core/logger.js.map +0 -1
- package/dist/esm/core/performance.js.map +0 -1
- package/dist/esm/core/plugin-manager.js.map +0 -1
- package/dist/esm/core/security.js.map +0 -1
- package/dist/esm/definitions.js.map +0 -1
- package/dist/esm/firestore/firestore-client.d.ts +0 -109
- package/dist/esm/firestore/firestore-client.js +0 -264
- package/dist/esm/firestore/firestore-client.js.map +0 -1
- package/dist/esm/firestore/index.d.ts +0 -11
- package/dist/esm/firestore/index.js +0 -11
- package/dist/esm/firestore/index.js.map +0 -1
- package/dist/esm/firestore/manifest-reader.d.ts +0 -87
- package/dist/esm/firestore/manifest-reader.js +0 -294
- package/dist/esm/firestore/manifest-reader.js.map +0 -1
- package/dist/esm/firestore/schema.d.ts +0 -507
- package/dist/esm/firestore/schema.js +0 -73
- package/dist/esm/firestore/schema.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/live-update/bundle-manager.js.map +0 -1
- package/dist/esm/live-update/certificate-pinning.js.map +0 -1
- package/dist/esm/live-update/delta-processor.js.map +0 -1
- package/dist/esm/live-update/download-manager.js.map +0 -1
- package/dist/esm/live-update/rollout-checker.js.map +0 -1
- package/dist/esm/live-update/update-manager.js.map +0 -1
- package/dist/esm/live-update/version-manager.js.map +0 -1
- package/dist/esm/plugin.js.map +0 -1
- package/dist/esm/security/crypto.js.map +0 -1
- package/dist/esm/security/validator.js.map +0 -1
- package/dist/esm/web.js.map +0 -1
- package/dist/plugin.cjs.js.map +0 -1
- package/dist/plugin.esm.js.map +0 -1
- package/dist/plugin.js.map +0 -1
- package/docs/FIREBASE_INTEGRATION_TRACKER.md +0 -321
- package/docs/FIREBASE_QUERIES_AND_INDEXES_AUDIT.md +0 -221
- package/docs/examples/firebase-backend-example.md +0 -27
- package/docs/features/laravel-nova-backend/credentials.ignore.md +0 -34
- package/docs/guides/no-cost-backend-implementation-plan.md +0 -77
- package/docs/guides/no-cost-firestore-google-drive-backend.md +0 -60
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-16.md +0 -454
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-24.md +0 -66
- package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-25.md +0 -67
- /package/docs/{MARKETING_WEBSITE_PLAN.md → archive/MARKETING_WEBSITE_PLAN.md} +0 -0
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## Metadata
|
|
4
4
|
|
|
5
|
-
- **Reference Date:** 2026-
|
|
6
|
-
- **Last Updated:** 2026-
|
|
5
|
+
- **Reference Date:** 2026-05-18
|
|
6
|
+
- **Last Updated:** 2026-05-18
|
|
7
7
|
- **Goal:** Enumerate the current `/docs` folder so AI tools know what documentation already exists before planning, writing, or duplicating work
|
|
8
8
|
|
|
9
9
|
## Coverage Note
|
|
10
10
|
|
|
11
11
|
This file inventories the docs currently present in `/docs`. It is a high-context index, not a replacement for reading the source documents when exact wording or implementation detail is needed.
|
|
12
12
|
|
|
13
|
+
There is also a separate **public Docusaurus site** at the sibling repo `native-update-docs/` (deployed to Firebase Hosting). That site mirrors the curated user-facing subset (Tutorials, How-to, Reference, Explanation — Diátaxis), and is not duplicated here.
|
|
14
|
+
|
|
13
15
|
## Root-Level Docs
|
|
14
16
|
|
|
15
17
|
| Path | Purpose / Notes |
|
|
@@ -21,26 +23,35 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
21
23
|
| `docs/COMPREHENSIVE_AUDIT_REPORT.md` | Broad audit/reporting artifact |
|
|
22
24
|
| `docs/EXAMPLE_APPS_SIMPLIFICATION_PLAN.md` | Plan for simplifying example apps |
|
|
23
25
|
| `docs/EXAMPLE_APPS_SIMPLIFICATION_TRACKER.md` | Tracking file for example-app simplification |
|
|
24
|
-
| `docs/FIREBASE_INTEGRATION_TRACKER.md` | Firebase integration tracking/status notes |
|
|
25
|
-
| `docs/FIREBASE_QUERIES_AND_INDEXES_AUDIT.md` | Firestore query/index audit reference |
|
|
26
26
|
| `docs/KNOWN_LIMITATIONS.md` | Explicit limitations and caveats |
|
|
27
27
|
| `docs/LIVE_UPDATES_GUIDE.md` | OTA/live update guidance |
|
|
28
|
-
| `docs/MARKETING_WEBSITE_PLAN.md` | Marketing website planning document |
|
|
29
|
-
| `docs/MARKETING_WEBSITE_TRACKER.md` | Marketing website progress tracker |
|
|
30
|
-
| `docs/MIGRATION.md` | Migration information |
|
|
28
|
+
| `docs/archive/MARKETING_WEBSITE_PLAN.md` | Marketing website planning document — SUPERSEDED, archived 2026-05-18 (also removed from public sitemap + website/public/package-docs/ mirror) |
|
|
29
|
+
| `docs/MARKETING_WEBSITE_TRACKER.md` | Marketing website progress tracker (SUPERSEDED — kept in `docs/` because the 2026-05-11 audit-batch entry in CLAUDE.md still references it; the SUPERSEDED notice in the file body explains why) |
|
|
30
|
+
| `docs/MIGRATION.md` | Migration information (includes v2 → v3.0.0 breaking-change notes for the Firestore removal) |
|
|
31
31
|
| `docs/NATIVE_UPDATES_GUIDE.md` | Native app update guidance |
|
|
32
|
+
| `docs/PERFORMANCE.md` | Real-world OTA framing + microbenchmark targets + hot-paths map |
|
|
32
33
|
| `docs/PROJECT_COMPLETION_TRACKER.md` | Completion/progress tracker |
|
|
33
34
|
| `docs/QUICK_START.md` | Fast-start implementation guidance |
|
|
35
|
+
| `docs/README.md` | Top-level docs overview |
|
|
34
36
|
| `docs/REMAINING_FEATURES.md` | Remaining or planned feature notes |
|
|
35
37
|
| `docs/ROADMAP.md` | Roadmap/status file |
|
|
36
38
|
| `docs/SECURITY.md` | High-level security documentation |
|
|
39
|
+
| `docs/SECURITY-IF-REPO-PUBLIC.md` | Preventive runbook for the day this repo goes public (secret-rotation table + history-scrub commands) |
|
|
37
40
|
| `docs/TESTING_REQUIREMENTS.md` | Testing expectations and requirements |
|
|
41
|
+
| `docs/analytics-tracking.md` | Analytics tracking conventions |
|
|
38
42
|
| `docs/background-updates.md` | Background update feature guide |
|
|
43
|
+
| `docs/capacitor-official-plugins.md` | Official Capacitor plugin status registry |
|
|
44
|
+
| `docs/capawesome-plugins.md` | Capawesome plugin status registry |
|
|
39
45
|
| `docs/cli-reference.md` | CLI usage reference |
|
|
40
|
-
| `docs/
|
|
41
|
-
| `docs/
|
|
46
|
+
| `docs/error-handling-tracking.md` | Error handling + tracking registry |
|
|
47
|
+
| `docs/package-audit.md` | Dependency audit notes |
|
|
48
|
+
| `docs/production-readiness.md` | Production readiness checklist/context (refreshed 2026-05-18) |
|
|
49
|
+
| `docs/rules-tracker.md` | Generic Project Rules application tracker |
|
|
50
|
+
| `docs/seo-aeo-rules.json` | SEO/AEO rules JSON |
|
|
42
51
|
| `docs/server-requirements.md` | Backend/server requirement notes |
|
|
43
52
|
|
|
53
|
+
Note: `docs/play-console-rejection-rules.json` is intentionally NOT kept here — the canonical file lives at `~/.claude/play-console-rejection-rules.json`. Old local copies were removed per the IRON-SOLID rule in CLAUDE.md.
|
|
54
|
+
|
|
44
55
|
## API Docs
|
|
45
56
|
|
|
46
57
|
| Path | Purpose / Notes |
|
|
@@ -68,6 +79,10 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
68
79
|
| `docs/features/app-reviews.md` | In-app review feature details |
|
|
69
80
|
| `docs/features/app-updates.md` | Native app update feature details |
|
|
70
81
|
| `docs/features/live-updates.md` | OTA/live update feature details |
|
|
82
|
+
| `docs/features/laravel-nova-backend/ASSESSMENT-SUMMARY.md` | Laravel + Nova backend assessment summary |
|
|
83
|
+
| `docs/features/laravel-nova-backend/IMPLEMENTATION-PLAN.md` | Laravel + Nova implementation plan |
|
|
84
|
+
| `docs/features/laravel-nova-backend/progress-tracker.json` | Laravel + Nova progress tracker |
|
|
85
|
+
| `docs/features/laravel-nova-backend/credentials.ignore.md` | gitignored credentials reference (not committed) |
|
|
71
86
|
|
|
72
87
|
## Guide Docs
|
|
73
88
|
|
|
@@ -81,12 +96,12 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
81
96
|
| `docs/guides/end-to-end-workflow.md` | Full workflow from setup to production |
|
|
82
97
|
| `docs/guides/key-management.md` | Key generation and management |
|
|
83
98
|
| `docs/guides/migration-from-codepush.md` | CodePush migration guide |
|
|
84
|
-
| `docs/guides/no-cost-backend-implementation-plan.md` | Planning file for no-cost backend path |
|
|
85
|
-
| `docs/guides/no-cost-firestore-google-drive-backend.md` | Key recommended backend architecture guide |
|
|
86
99
|
| `docs/guides/security-best-practices.md` | Secure update implementation guidance |
|
|
87
100
|
| `docs/guides/testing-guide.md` | Testing procedures and expectations |
|
|
88
101
|
| `docs/guides/troubleshooting.md` | Troubleshooting and issue resolution guide |
|
|
89
102
|
|
|
103
|
+
Note: `no-cost-firestore-google-drive-backend.md` and `no-cost-backend-implementation-plan.md` were removed on 2026-05-18 — the no-cost Firestore + Drive architecture was deliberately abandoned in v3.0.0 (Laravel + MySQL is the only backend now).
|
|
104
|
+
|
|
90
105
|
## Examples Docs
|
|
91
106
|
|
|
92
107
|
| Path | Purpose / Notes |
|
|
@@ -94,10 +109,11 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
94
109
|
| `docs/examples/advanced-scenarios.md` | More advanced use cases and patterns |
|
|
95
110
|
| `docs/examples/android-manifest-example.xml` | Android manifest example |
|
|
96
111
|
| `docs/examples/basic-usage.md` | Basic implementation examples |
|
|
97
|
-
| `docs/examples/firebase-backend-example.md` | Firebase backend example |
|
|
98
112
|
| `docs/examples/node-express-backend-example.md` | Node/Express backend example |
|
|
99
113
|
| `docs/examples/react-capacitor-example.md` | React + Capacitor frontend example |
|
|
100
114
|
|
|
115
|
+
Note: `firebase-backend-example.md` was removed during post-closure cleanup (commit `3a8dda6`).
|
|
116
|
+
|
|
101
117
|
## Plans
|
|
102
118
|
|
|
103
119
|
| Path | Purpose / Notes |
|
|
@@ -106,13 +122,15 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
106
122
|
| `docs/plans/TASK_1_ANDROID_EXAMPLE_APP.md` | Android example-app planning task |
|
|
107
123
|
| `docs/plans/TASK_2_API_ENDPOINTS.md` | API endpoint planning |
|
|
108
124
|
| `docs/plans/TASK_2_DASHBOARD_UI_UX.md` | Dashboard UX planning |
|
|
109
|
-
| `docs/plans/TASK_2_DATABASE_SCHEMA.md` | Database schema planning |
|
|
125
|
+
| `docs/plans/TASK_2_DATABASE_SCHEMA.md` | Database schema planning (historical — may pre-date Laravel + MySQL adoption) |
|
|
110
126
|
| `docs/plans/TASK_2_GOOGLE_DRIVE_INTEGRATION.md` | Drive integration planning |
|
|
111
127
|
| `docs/plans/TASK_2_SAAS_ARCHITECTURE.md` | SaaS architecture planning |
|
|
112
|
-
| `docs/plans/TASK_2_USER_AUTHENTICATION.md` | Auth planning |
|
|
128
|
+
| `docs/plans/TASK_2_USER_AUTHENTICATION.md` | Auth planning (historical — predates the Socialite + Sanctum swap) |
|
|
113
129
|
|
|
114
130
|
## Reports
|
|
115
131
|
|
|
132
|
+
Historical status, audit, and verification reports. Useful as timeline artifacts; not authoritative for current state.
|
|
133
|
+
|
|
116
134
|
| Path | Purpose / Notes |
|
|
117
135
|
|------|------------------|
|
|
118
136
|
| `docs/reports/AUDIT_SUMMARY_2025-12-26.md` | Historical audit summary |
|
|
@@ -139,6 +157,31 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
139
157
|
| Path | Purpose / Notes |
|
|
140
158
|
|------|------------------|
|
|
141
159
|
| `docs/security/certificate-pinning.md` | Certificate pinning details |
|
|
160
|
+
| `docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md` | DIY pentest checklist (dep hygiene, authN/authZ, CORS/CSRF, bundle integrity, file safety, data handling, operational safety, mobile platform, 9 specific attack paths) |
|
|
161
|
+
|
|
162
|
+
## Deployment Subfolder
|
|
163
|
+
|
|
164
|
+
| Path | Purpose / Notes |
|
|
165
|
+
|------|------------------|
|
|
166
|
+
| `docs/deployment/PRODUCTION-DEPLOY-CHECKLIST.md` | Production deploy runbook |
|
|
167
|
+
| `docs/deployment/HOSTINGER_DEPLOY.md` | Hostinger-specific deploy notes |
|
|
168
|
+
|
|
169
|
+
## Docs Site Subfolder
|
|
170
|
+
|
|
171
|
+
| Path | Purpose / Notes |
|
|
172
|
+
|------|------------------|
|
|
173
|
+
| `docs/docs-site/scope.md` | Public Docusaurus site scope |
|
|
174
|
+
| `docs/docs-site/plan.md` | Public Docusaurus site plan (10-batch flow) |
|
|
175
|
+
| `docs/docs-site/tracker.json` | Public Docusaurus site progress tracker (status: COMPLETE; 7-day cooldown) |
|
|
176
|
+
|
|
177
|
+
## Project Audit Subfolder
|
|
178
|
+
|
|
179
|
+
| Path | Purpose / Notes |
|
|
180
|
+
|------|------------------|
|
|
181
|
+
| `docs/project-audit/PRODUCTION-READINESS-AUDIT-2026-05-08.md` | Production-readiness audit findings (39 items + 5 roadmap) |
|
|
182
|
+
| `docs/project-audit/BATCH-PLAN.md` | 10-batch production-readiness fix plan |
|
|
183
|
+
| `docs/project-audit/MARKETING-WEBSITE-FINDINGS-2026-05-11.md` | Marketing-website specific findings |
|
|
184
|
+
| `docs/project-audit/2026-05-16/` | Finalization audit for Play Store publishing (10 batches, all complete) |
|
|
142
185
|
|
|
143
186
|
## Tracking Subfolder
|
|
144
187
|
|
|
@@ -147,12 +190,26 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
147
190
|
| `docs/tracking/IMPLEMENTATION_TRACKER.md` | Implementation tracking |
|
|
148
191
|
| `docs/tracking/capacitor-rollout-note-2026-03-01.md` | Rollout note / dated tracking artifact |
|
|
149
192
|
| `docs/tracking/completion-tracker-2026-02-24.json` | JSON completion tracker |
|
|
193
|
+
| `docs/tracking/full-audit-tracker.json` | Retired full-audit tracker (superseded by production-readiness tracker) |
|
|
194
|
+
| `docs/tracking/production-readiness-audit-tracker.json` | Authoritative production-readiness audit tracker |
|
|
195
|
+
| `docs/tracking/finalization-2026-05-16-tracker.json` | Finalization-audit tracker (status: COMPLETE) |
|
|
196
|
+
| `docs/tracking/seo-checklist-tracker.json` | SEO checklist tracker |
|
|
197
|
+
|
|
198
|
+
## Social Media Marketing Subfolder
|
|
199
|
+
|
|
200
|
+
| Path | Purpose / Notes |
|
|
201
|
+
|------|------------------|
|
|
202
|
+
| `docs/social-media-marketing/README.md` | Per-file/batch policy + run history + char-limit + content-honesty rules |
|
|
203
|
+
| `docs/social-media-marketing/posts-batch-01.md` | 10 LinkedIn/Facebook posts (2700–2900 chars each) |
|
|
204
|
+
| `docs/social-media-marketing/posts-batch-02.md` | 10 LinkedIn/Facebook posts |
|
|
205
|
+
| `docs/social-media-marketing/whatsapp-messages-batch-01.md` | 30 WhatsApp messages (400–600 chars) |
|
|
206
|
+
| `docs/social-media-marketing/whatsapp-status-batch-01.md` | 30 WhatsApp status messages (240–400 chars) |
|
|
150
207
|
|
|
151
208
|
## Existing Project Profile and AI-Oriented Docs
|
|
152
209
|
|
|
153
210
|
| Path | Purpose / Notes |
|
|
154
211
|
|------|------------------|
|
|
155
|
-
| `docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-
|
|
212
|
+
| `docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-05-19.md` | Current dated project profile (refreshed 2026-05-19 after v3.0.0 + Sanctum swap + finalization audit + Phase A purge); older 2026-03-* dated profiles deleted in the same commit per the weekly-refresh-with-history-cap rule |
|
|
156
213
|
|
|
157
214
|
## How AI Should Use The Docs Corpus
|
|
158
215
|
|
|
@@ -162,15 +219,16 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
162
219
|
|
|
163
220
|
### For Product Positioning
|
|
164
221
|
|
|
165
|
-
- Use `docs/README.md`, feature docs, dashboard guides, website pages, and the project profile
|
|
222
|
+
- Use `docs/README.md`, feature docs, dashboard guides, website pages, and the most recent project profile
|
|
166
223
|
|
|
167
224
|
### For Architecture or Backend Planning
|
|
168
225
|
|
|
169
|
-
- Use
|
|
226
|
+
- Use `docs/features/laravel-nova-backend/*`, `docs/api/*`, `docs/deployment/*`, and the live Laravel codebase at `backend/`
|
|
227
|
+
- DO NOT use the historical `docs/plans/TASK_2_*` files as architectural truth — they predate the Laravel adoption
|
|
170
228
|
|
|
171
229
|
### For Testing
|
|
172
230
|
|
|
173
|
-
- Use `docs/TESTING_REQUIREMENTS.md`, testing
|
|
231
|
+
- Use `docs/TESTING_REQUIREMENTS.md`, `docs/guides/testing-guide.md`, verification reports, and test files in source
|
|
174
232
|
|
|
175
233
|
### For Historical Context
|
|
176
234
|
|
|
@@ -178,7 +236,7 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
|
|
|
178
236
|
|
|
179
237
|
### For Legal / Compliance / Security
|
|
180
238
|
|
|
181
|
-
- Use `docs/SECURITY.md`, security-best-practices
|
|
239
|
+
- Use `docs/SECURITY.md`, `docs/SECURITY-IF-REPO-PUBLIC.md`, `docs/security/*`, `docs/guides/security-best-practices.md`, website legal pages, and `docs/production-readiness.md`
|
|
182
240
|
|
|
183
241
|
## Important Interpretation Rule
|
|
184
242
|
|
|
@@ -190,4 +248,9 @@ The `/docs` folder mixes:
|
|
|
190
248
|
- historical reports
|
|
191
249
|
- status snapshots
|
|
192
250
|
|
|
193
|
-
AI tools should not treat all documents as equally current. For current technical truth, validate against
|
|
251
|
+
AI tools should not treat all documents as equally current. For current technical truth, validate against:
|
|
252
|
+
|
|
253
|
+
1. Source code (`src/`, `website/src/`, `backend/`)
|
|
254
|
+
2. The newest dated documents (look at file dates and dated audit folders)
|
|
255
|
+
3. This knowledge base (refreshed 2026-05-18)
|
|
256
|
+
4. The root `CLAUDE.md` Audit Record table
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## Metadata
|
|
4
4
|
|
|
5
|
-
- **Reference Date:** 2026-
|
|
6
|
-
- **Last Updated:** 2026-
|
|
5
|
+
- **Reference Date:** 2026-05-18
|
|
6
|
+
- **Last Updated:** 2026-05-18
|
|
7
7
|
|
|
8
8
|
## Operations Context
|
|
9
9
|
|
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
- Plugin code ships via npm as `native-update`
|
|
13
13
|
- Dashboard supports browser-driven ZIP upload workflows
|
|
14
|
-
- Google Drive stores release bundles
|
|
15
|
-
-
|
|
14
|
+
- Google Drive stores release bundles (server-side OAuth, encrypted tokens on the User row)
|
|
15
|
+
- Laravel + MySQL stores user accounts, apps, API keys, signing keys, builds, rollouts, subscriptions, and analytics events
|
|
16
|
+
- Nova admin at `/nova` provides full CRUD + custom actions over the same MySQL data
|
|
16
17
|
|
|
17
18
|
### Channel Model
|
|
18
19
|
|
|
@@ -27,46 +28,53 @@ Observed product messaging and docs position these as the primary update channel
|
|
|
27
28
|
- percentage-based rollout
|
|
28
29
|
- pause/resume support
|
|
29
30
|
- gradual or scheduled rollout concepts in schema/docs
|
|
30
|
-
- rollout configuration stored
|
|
31
|
+
- rollout configuration stored on the Build row (`rollout_enabled`, `rollout_percentage`, `rollout_start_time`, `rollout_end_time`, `target_segments`)
|
|
32
|
+
|
|
33
|
+
### Deployment Model
|
|
34
|
+
|
|
35
|
+
- **Backend (Laravel):** deployed to any PHP 8.2+ host. Runbook in `docs/deployment/PRODUCTION-DEPLOY-CHECKLIST.md`. Hostinger-specific notes in `docs/deployment/HOSTINGER_DEPLOY.md`. Queue worker required for async jobs (systemd unit template included).
|
|
36
|
+
- **Website (React SPA):** deployed to Firebase Hosting via the `website/firebase.json` config. Firebase Hosting is the ONLY Firebase usage; there is no Firestore, no Firebase Auth, no Firebase Functions in the live architecture.
|
|
37
|
+
- **Public docs site (Docusaurus):** sibling repo `native-update-docs/`, also Firebase Hosting (same hosting-only pattern).
|
|
38
|
+
- **Mobile dashboard wrapper:** website Capacitor-wrapped for Play Store publishing (see `docs/project-audit/2026-05-16/` for the publishing flow).
|
|
31
39
|
|
|
32
40
|
## Testing Context
|
|
33
41
|
|
|
34
42
|
### Test Layers Present In Repo
|
|
35
43
|
|
|
36
|
-
-
|
|
44
|
+
- Backend Pest/PHPUnit tests under `backend/tests/` (~136 passing including OAuth + Sanctum + Spatie + UpdateBuildRequest FormRequest + PayPal webhook + BundleUpload + UserLicense)
|
|
37
45
|
- iOS XCTest files under `ios/Tests/NativeUpdateTests/`
|
|
38
46
|
- Android JUnit/Kotlin tests under `android/src/test/java/com/aoneahsan/nativeupdate/`
|
|
39
|
-
- E2E tests under `e2e/specs/`
|
|
40
|
-
|
|
41
|
-
### E2E Areas Mentioned
|
|
42
|
-
|
|
43
|
-
- OTA update lifecycle
|
|
44
|
-
- error handling
|
|
45
|
-
- download progress
|
|
46
|
-
- channel switching
|
|
47
47
|
|
|
48
48
|
### Testing Documentation Present
|
|
49
49
|
|
|
50
50
|
- `docs/TESTING_REQUIREMENTS.md`
|
|
51
51
|
- `docs/guides/testing-guide.md`
|
|
52
|
+
- `docs/PERFORMANCE.md` (microbenchmark targets + regression workflow)
|
|
52
53
|
- verification and audit reports under `docs/reports/`
|
|
53
54
|
|
|
54
55
|
## Security Context
|
|
55
56
|
|
|
56
57
|
### Security Themes Repeated Across Repo
|
|
57
58
|
|
|
58
|
-
- checksum validation
|
|
59
|
-
- signing and verification
|
|
59
|
+
- SHA-256 checksum validation
|
|
60
|
+
- RSA-SHA256 signing and verification
|
|
60
61
|
- HTTPS enforcement
|
|
61
62
|
- certificate pinning support
|
|
62
63
|
- manifest/file integrity
|
|
63
64
|
- secure update delivery
|
|
65
|
+
- fail-closed on integrity violation; fail-open on availability (documented philosophy in the Docusaurus site `error-handling-philosophy.md`)
|
|
66
|
+
- private keys never leave the Laravel host
|
|
67
|
+
- Drive OAuth tokens encrypted at rest (Laravel encrypter)
|
|
68
|
+
- Sanctum tokens hashed at rest; plain-text shown once on issuance
|
|
69
|
+
- ProGuard/R8 + signing config on Android release builds
|
|
64
70
|
|
|
65
71
|
### Security Docs Present
|
|
66
72
|
|
|
67
73
|
- `docs/SECURITY.md`
|
|
74
|
+
- `docs/SECURITY-IF-REPO-PUBLIC.md` (preventive runbook for the day the repo flips public — secret-rotation table + history-scrub commands)
|
|
68
75
|
- `docs/BUNDLE_SIGNING.md`
|
|
69
76
|
- `docs/security/certificate-pinning.md`
|
|
77
|
+
- `docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md` (10-section DIY pentest checklist)
|
|
70
78
|
- `docs/guides/security-best-practices.md`
|
|
71
79
|
- SecurityPage on website
|
|
72
80
|
|
|
@@ -81,34 +89,56 @@ Observed product messaging and docs position these as the primary update channel
|
|
|
81
89
|
- `/security`
|
|
82
90
|
- `/contact`
|
|
83
91
|
|
|
84
|
-
These pages are explicitly called out in `website/CLAUDE.md` as important and app-store-relevant.
|
|
92
|
+
These pages are explicitly called out in `website/CLAUDE.md` as important and app-store-relevant. They were updated in 2026-05-16 Batch 7 to reflect the Sanctum + Laravel stack (Firebase Auth references removed).
|
|
85
93
|
|
|
86
94
|
### Legal Messaging Themes In Website
|
|
87
95
|
|
|
88
96
|
- privacy handling
|
|
89
|
-
-
|
|
90
|
-
- account deletion path
|
|
97
|
+
- account deletion path (revokes Sanctum tokens, soft-deletes User row, clears encrypted Drive tokens, cascades to apps/builds)
|
|
91
98
|
- support/contact identity
|
|
92
|
-
- security positioning
|
|
99
|
+
- security positioning (no fabricated SOC/ISO/SLA claims — removed in 2026-05-16 Batch 7)
|
|
93
100
|
- ownership/control messaging around Google Drive files
|
|
94
101
|
|
|
102
|
+
### Play Store Compliance Notes
|
|
103
|
+
|
|
104
|
+
- Merged AndroidManifest at `android/app/build/intermediates/merged_manifests/*/AndroidManifest.xml` MUST be inspected before every AAB upload — Capacitor/Cordova plugins auto-inject permissions
|
|
105
|
+
- Sensitive permissions (CAMERA, RECORD_AUDIO, ACCESS_FINE_LOCATION, READ_CONTACTS, etc.) require: matching privacy-policy section + Data Safety row + runtime-prompt UX + non-permission fallback
|
|
106
|
+
- Branded launcher icons (15 PNGs), splash (11 PNGs), 3 Play Store graphics rendered from SVG via rsvg-convert in 2026-05-16 Batch 9
|
|
107
|
+
- Play Store rejection rules: read from `~/.claude/play-console-rejection-rules.json` (single global source — never copy into project)
|
|
108
|
+
|
|
95
109
|
## Content and SEO Context
|
|
96
110
|
|
|
97
111
|
### Built-In Public Content Surfaces
|
|
98
112
|
|
|
99
113
|
- Home page
|
|
100
|
-
- Features page
|
|
101
|
-
-
|
|
114
|
+
- Features page (1492+ words, FAQ schema, HowTo schema, SoftwareApplication schema)
|
|
115
|
+
- Pricing page (1457+ words, Product schema with real $0/$29/$199 Offers)
|
|
116
|
+
- About page (1913+ words, Person + FAQPage schema)
|
|
102
117
|
- Docs page
|
|
103
118
|
- Examples page
|
|
104
119
|
- Feed page
|
|
105
120
|
- Sitemap page
|
|
106
121
|
- Contact page
|
|
107
122
|
|
|
123
|
+
### Built-In Discovery Files
|
|
124
|
+
|
|
125
|
+
- `robots.txt` (30+ AI bots allow-listed)
|
|
126
|
+
- `sitemap.xml` (auto-generated, every public URL with `<lastmod>`)
|
|
127
|
+
- `sitemap-index.json`
|
|
128
|
+
- `feed.xml` (RSS 2.0 with runtime `lastBuildDate`)
|
|
129
|
+
- `llms.txt` (Jeremy Howard spec)
|
|
130
|
+
- `llms-full.txt` (long-form AI profile)
|
|
131
|
+
- `ai.txt` (training/citation policy)
|
|
132
|
+
- `humans.txt`
|
|
133
|
+
- `.well-known/security.txt` (RFC 9116)
|
|
134
|
+
- `pricing.md` (machine-readable pricing for AI buying agents)
|
|
135
|
+
|
|
108
136
|
### Social/Portfolio Context Already Added
|
|
109
137
|
|
|
110
138
|
- Project profile exists under `docs/project-profiles/`
|
|
111
|
-
-
|
|
139
|
+
- Portfolio info file at root: `NATIVE-UPDATE_portfolio-info_YYYY-MM-DD.md` (weekly refresh)
|
|
140
|
+
- Social-media marketing content under `docs/social-media-marketing/` (posts, WhatsApp messages, status)
|
|
141
|
+
- This knowledge base supports future content generation with technical accuracy
|
|
112
142
|
|
|
113
143
|
### Best Content Angles
|
|
114
144
|
|
|
@@ -116,9 +146,9 @@ These pages are explicitly called out in `website/CLAUDE.md` as important and ap
|
|
|
116
146
|
- OTA update engineering
|
|
117
147
|
- secure mobile release workflows
|
|
118
148
|
- dashboard and release-ops UX
|
|
119
|
-
-
|
|
120
|
-
- cross-platform engineering across TypeScript, Swift, Kotlin, and React
|
|
121
|
-
- AI-ready docs and developer enablement
|
|
149
|
+
- Laravel + Nova self-hostable backend (CodePush alternative without vendor lock-in)
|
|
150
|
+
- cross-platform engineering across TypeScript, Swift, Kotlin, PHP, and React
|
|
151
|
+
- AI-ready docs and developer enablement (llms.txt, JSON-LD, machine-readable pricing)
|
|
122
152
|
|
|
123
153
|
## Planning and Decision-Making Rules For AI
|
|
124
154
|
|
|
@@ -126,15 +156,17 @@ These pages are explicitly called out in `website/CLAUDE.md` as important and ap
|
|
|
126
156
|
- Prefer current source code and route definitions over older historical reports.
|
|
127
157
|
- Treat roadmap items as future-facing unless code confirms they are already shipped.
|
|
128
158
|
- When recommending changes for the website, consider sitemap/feed/legal page maintenance.
|
|
129
|
-
- When recommending backend changes
|
|
159
|
+
- When recommending backend changes, propose them against the Laravel codebase at `backend/`. The no-cost Firestore + Drive architecture was abandoned in v3.0.0 — do not resurrect it.
|
|
160
|
+
- When recommending storage changes, prefer Google Drive (already wired with server-side OAuth) or FilesHub (already wired for misc user assets). Don't propose S3 or Firebase Storage.
|
|
130
161
|
|
|
131
162
|
## Known Constraints and Notes
|
|
132
163
|
|
|
133
164
|
- The repo contains both current and historical status documents.
|
|
134
165
|
- Some legacy docs describe earlier incomplete states.
|
|
135
|
-
-
|
|
166
|
+
- Admin access is determined through `spatie/laravel-permission` role assignment, not a `users.is_admin` boolean.
|
|
167
|
+
- `super-admin` role bypasses every `can:` gate via `Gate::before`.
|
|
136
168
|
- The dashboard is optimized for authenticated operators, not end users.
|
|
137
|
-
-
|
|
169
|
+
- The website `DocsPage.tsx` was refactored 2026-05-19 from 1,406 lines into a 166-line shell + 2 helpers (`docs-page/components/`) + 13 per-section components (`docs-page/sections/`). All files now satisfy the workspace 500-line max; largest sub-file is `ExamplesSection.tsx` at 157 lines.
|
|
138
170
|
|
|
139
171
|
## AI Usage Recommendations By Category
|
|
140
172
|
|
|
@@ -142,25 +174,30 @@ These pages are explicitly called out in `website/CLAUDE.md` as important and ap
|
|
|
142
174
|
|
|
143
175
|
- Use this knowledge base first
|
|
144
176
|
- then inspect source modules and exact docs files tied to the feature
|
|
177
|
+
- For backend work: read `backend/app/Http/Controllers/Dashboard/<thing>` + its FormRequest + its test before proposing changes
|
|
145
178
|
|
|
146
179
|
### For Testing
|
|
147
180
|
|
|
148
181
|
- map the feature to its page/module/native component
|
|
149
182
|
- use testing docs plus test files to derive coverage strategy
|
|
183
|
+
- backend test pattern: `backend/tests/Feature/<Thing>Test.php` (Pest); run via `php artisan test`
|
|
150
184
|
|
|
151
185
|
### For Legal or Policy Work
|
|
152
186
|
|
|
153
187
|
- review legal pages and security/privacy docs together
|
|
154
188
|
- do not rely only on marketing copy
|
|
189
|
+
- when scoping data-handling claims, validate against the actual Laravel models + migrations
|
|
155
190
|
|
|
156
191
|
### For Marketing or Social Content
|
|
157
192
|
|
|
158
193
|
- use product profile + this knowledge base + current website messaging
|
|
159
194
|
- avoid unsupported performance or adoption claims
|
|
195
|
+
- per `docs/social-media-marketing/README.md`: max 7 hashtags per post; honesty rules apply; only describe features that exist in the live codebase
|
|
160
196
|
|
|
161
197
|
### For Planning
|
|
162
198
|
|
|
163
199
|
- check roadmap, remaining-features docs, plans, and code reality together
|
|
200
|
+
- per-feature trackers live in `docs/features/<feature-slug>/00-tracker.json` (resumable JSON schema)
|
|
164
201
|
|
|
165
202
|
## Maintenance Rule For This Knowledge Base
|
|
166
203
|
|
|
@@ -168,3 +205,4 @@ These pages are explicitly called out in `website/CLAUDE.md` as important and ap
|
|
|
168
205
|
- Update sooner when routes, forms, data models, docs, modules, legal pages, or backend assumptions change
|
|
169
206
|
- Keep `Reference Date` and `Last Updated` current in each file
|
|
170
207
|
- Keep this folder aligned with actual repo state, not just historical docs
|
|
208
|
+
- When the Laravel schema changes (new migration), update `04-data-models-integrations.md` in the same task
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
- **Project:** Native Update
|
|
6
6
|
- **Knowledge Base Purpose:** High-context reference set for AI tools, planning, development, QA, legal review, content generation, and portfolio/social reuse
|
|
7
7
|
- **Coverage Goal:** Provide a practical, current map of the product, codebase, docs corpus, routes, forms, users, modules, integrations, and operating assumptions
|
|
8
|
-
- **Reference Date:** 2026-
|
|
9
|
-
- **Last Updated:** 2026-
|
|
8
|
+
- **Reference Date:** 2026-05-18
|
|
9
|
+
- **Last Updated:** 2026-05-18
|
|
10
10
|
- **Update Cadence:** Every 2 weeks minimum while the project is active, plus any time major product or docs changes land
|
|
11
11
|
- **History Policy:** Keep update history in this file and keep only the latest 10 entries
|
|
12
12
|
|
|
@@ -27,28 +27,29 @@ This folder is intentionally different from the public docs. Public docs explain
|
|
|
27
27
|
|
|
28
28
|
## File Map
|
|
29
29
|
|
|
30
|
-
- `01-system-overview.md`
|
|
30
|
+
- `01-system-overview.md`
|
|
31
31
|
Product scope, capabilities, platform coverage, user types, URLs, and decision context.
|
|
32
32
|
|
|
33
|
-
- `02-routes-pages-forms-users.md`
|
|
33
|
+
- `02-routes-pages-forms-users.md`
|
|
34
34
|
Website routes, dashboard/admin routes, page purposes, major interactions, forms, and access rules.
|
|
35
35
|
|
|
36
|
-
- `03-tech-stack-modules-services.md`
|
|
36
|
+
- `03-tech-stack-modules-services.md`
|
|
37
37
|
Repo architecture, package structure, frontend services, stores, plugin modules, CLI commands, native modules, and backend components.
|
|
38
38
|
|
|
39
|
-
- `04-data-models-integrations.md`
|
|
40
|
-
|
|
39
|
+
- `04-data-models-integrations.md`
|
|
40
|
+
MySQL schema, model purposes, authentication model (Sanctum + Spatie RBAC), Google Drive flow, manifest publishing flow, and system boundaries.
|
|
41
41
|
|
|
42
|
-
- `05-docs-corpus-inventory.md`
|
|
42
|
+
- `05-docs-corpus-inventory.md`
|
|
43
43
|
Full inventory of the current `/docs` folder, grouped and described so AI can understand what knowledge already exists.
|
|
44
44
|
|
|
45
|
-
- `06-operations-testing-legal-content.md`
|
|
45
|
+
- `06-operations-testing-legal-content.md`
|
|
46
46
|
Testing posture, production/release considerations, legal pages, SEO/content context, and known constraints for planning or messaging.
|
|
47
47
|
|
|
48
48
|
## Primary Project URLs
|
|
49
49
|
|
|
50
50
|
- Marketing website: `https://nativeupdate.aoneahsan.com`
|
|
51
51
|
- Docs entry: `https://nativeupdate.aoneahsan.com/docs`
|
|
52
|
+
- Public docs site (Docusaurus): `https://nativeupdate-docs.aoneahsan.com`
|
|
52
53
|
- Contact page: `https://nativeupdate.aoneahsan.com/contact`
|
|
53
54
|
- NPM package page: `https://www.npmjs.com/package/native-update`
|
|
54
55
|
|
|
@@ -62,10 +63,21 @@ Native Update is an open-source Capacitor update platform. It combines:
|
|
|
62
63
|
- background update checks
|
|
63
64
|
- release manifests and rollout control
|
|
64
65
|
- security validation and signing support
|
|
65
|
-
- a web dashboard for app/build management
|
|
66
|
-
- example backends and example apps
|
|
66
|
+
- a Laravel 11 + Nova 5 web dashboard for app/build management
|
|
67
|
+
- example backends (Node.js + Express) and example apps (React + Capacitor)
|
|
67
68
|
- CLI tooling for release workflows
|
|
68
69
|
|
|
70
|
+
## Backend Architecture (v3.0.0+)
|
|
71
|
+
|
|
72
|
+
The hosted SaaS and self-host paths both run the same Laravel backend at `backend/`. There is no Firestore branch. The plugin SDK no longer ships any Firestore code.
|
|
73
|
+
|
|
74
|
+
- Identity: Google OAuth via `laravel/socialite` → Sanctum personal access tokens
|
|
75
|
+
- RBAC: `spatie/laravel-permission` with `sanctum` guard; roles `super-admin`, `admin`, `user`
|
|
76
|
+
- Persistence: MySQL (Laravel migrations + Eloquent)
|
|
77
|
+
- Admin UI: Laravel Nova 5
|
|
78
|
+
- Storage: Google Drive (server-side OAuth, encrypted tokens) + FilesHub for misc user assets
|
|
79
|
+
- Mobile API key plane: per-app API keys via `ValidateApiKey` middleware (separate from Sanctum)
|
|
80
|
+
|
|
69
81
|
## Recommended Use Of This Folder
|
|
70
82
|
|
|
71
83
|
- Use this folder as the first-stop AI context before generating plans, code proposals, QA checklists, legal summaries, portfolio content, SEO drafts, social content, or roadmap suggestions.
|
|
@@ -75,10 +87,10 @@ Native Update is an open-source Capacitor update platform. It combines:
|
|
|
75
87
|
## Update Checklist
|
|
76
88
|
|
|
77
89
|
- Re-check all routes in `website/src/router.tsx`
|
|
78
|
-
- Re-check user/auth/admin assumptions in
|
|
90
|
+
- Re-check user/auth/admin assumptions in `backend/app/Http/Controllers/Auth/` + the spatie permission seeder
|
|
79
91
|
- Re-check forms and fields on dashboard pages
|
|
80
|
-
- Re-check package versions and tech stack
|
|
81
|
-
- Re-check
|
|
92
|
+
- Re-check package versions and tech stack across root, `website/`, `backend/`, `cli/`
|
|
93
|
+
- Re-check MySQL schema in `backend/database/migrations/`
|
|
82
94
|
- Re-check `/docs` inventory for added/removed files
|
|
83
95
|
- Re-check any new `CLAUDE.md` files in nested subprojects
|
|
84
96
|
- Update `Reference Date`, `Last Updated`, and `Update History`
|
|
@@ -87,4 +99,5 @@ Native Update is an open-source Capacitor update platform. It combines:
|
|
|
87
99
|
|
|
88
100
|
| Date | Summary |
|
|
89
101
|
|------|---------|
|
|
102
|
+
| 2026-05-18 | Full regeneration after v3.0.0 (Firestore removed) + 2026-05-11 auth swap (Firebase Auth → Socialite + Sanctum + Spatie RBAC). Removed all Firebase/Firestore references; rewrote tech-stack, data-model, routes, and operations files against the live Laravel + MySQL + Nova architecture. |
|
|
90
103
|
| 2026-03-16 | Initial AI knowledge-base folder created with project-wide coverage across product, routes, forms, modules, data models, docs corpus, and operations context. |
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Native Update - Capacitor Update Platform Project Profile
|
|
2
|
+
|
|
3
|
+
## Document Metadata
|
|
4
|
+
|
|
5
|
+
- **Project Name:** Native Update
|
|
6
|
+
- **Project Type:** Open-source Capacitor plugin + Laravel-backed update management platform
|
|
7
|
+
- **Primary Domain:** Mobile app infrastructure / developer tooling / OTA delivery
|
|
8
|
+
- **Owner / Creator:** Ahsan Mahmood
|
|
9
|
+
- **Primary Contact:** aoneahsan@gmail.com
|
|
10
|
+
- **Package Name:** `native-update`
|
|
11
|
+
- **Current Package Version Reference:** `3.0.1`
|
|
12
|
+
- **License:** MIT
|
|
13
|
+
- **Primary Website:** `https://nativeupdate.aoneahsan.com`
|
|
14
|
+
- **Public Docs Site:** `https://nativeupdate-docs.aoneahsan.com` (Docusaurus, sibling repo `native-update-docs`)
|
|
15
|
+
- **Reference Date:** 2026-05-19
|
|
16
|
+
- **Last Updated:** 2026-05-19
|
|
17
|
+
- **Filename Rule:** Always keep `last-updated-YYYY-MM-DD` in the filename
|
|
18
|
+
- **Status Reference:** This profile reflects the repository state visible on 2026-05-19 from package metadata, source layout, docs, tests, dashboard docs, example apps, public Docusaurus docs site, and the 2026-05-16 finalization-audit closure.
|
|
19
|
+
|
|
20
|
+
## Verification Snapshot
|
|
21
|
+
|
|
22
|
+
- **Tests (root TypeScript):** `yarn test:run` — **62/62 passing** (Vitest)
|
|
23
|
+
- **Tests (backend Laravel):** `php artisan test` — **136/136 passing** (Pest/PHPUnit)
|
|
24
|
+
- **Build:** `yarn build` exit 0 (root plugin Rollup + website Vite + Docusaurus docs site); `yarn lint` exit 0 across root + website
|
|
25
|
+
- **Capacitor sync:** `npx cap sync android` clean; gradle config parses
|
|
26
|
+
- **Architecture:** v3.0.0 (2026-05-04) removed Firestore; Laravel 11 + Nova 5 + MySQL is the only backend. 2026-05-11 swapped Firebase Auth for Laravel Socialite + Sanctum personal access tokens + `spatie/laravel-permission` RBAC. 2026-05-16 finalization audit closed Play Store publishability end-to-end. 2026-05-18 Phase A cleanup purged the last Firebase/Firestore content references.
|
|
27
|
+
|
|
28
|
+
## Executive Summary
|
|
29
|
+
|
|
30
|
+
Native Update is a full update-management solution for Capacitor apps. It combines over-the-air web asset updates, native app store update flows, in-app review prompts, background update checks, security tooling, CLI utilities, two reference example apps, a public Docusaurus documentation site, and a Capacitor-wrapped React dashboard backed by a Laravel 11 + Nova 5 SaaS into one ecosystem. The project is positioned as both a reusable plugin and a broader release-operations platform for hybrid mobile products. After the v3.0.0 architectural simplification and the 2026-05-11 auth swap, the project runs on a single Laravel backend with Sanctum-token dashboard auth and Spatie RBAC — no Firebase backend.
|
|
31
|
+
|
|
32
|
+
## Current Positioning
|
|
33
|
+
|
|
34
|
+
Native Update helps Capacitor teams ship fixes faster, manage native store updates more intelligently, improve review prompting, and centralize release operations through a dashboard-driven workflow. It is stronger than a simple plugin because it includes the operational layer around updates — not just device APIs — and ships with a complete self-hosting story (Laravel + Nova + MySQL backend + Capacitor-wrapped dashboard + public Docusaurus docs site).
|
|
35
|
+
|
|
36
|
+
## Core Product Value
|
|
37
|
+
|
|
38
|
+
- **Speed:** OTA delivery for faster fixes and content changes
|
|
39
|
+
- **Control:** Channels, percentage rollouts, pause/resume, rollback support, target-segment hooks, and update-strategy choices
|
|
40
|
+
- **Security:** RSA-SHA256 signing, SHA-256 checksums, HTTPS posture, certificate pinning, encrypted Drive token storage, hashed-at-rest Sanctum tokens, fail-closed integrity rules
|
|
41
|
+
- **Productivity:** CLI tooling (8 commands), 58-page Diátaxis docs site, two reference example apps, dashboard with TanStack Query-backed admin pages
|
|
42
|
+
- **Ownership:** Open-source MIT-licensed plugin; self-hostable Laravel + Nova backend; private signing keys never leave the host
|
|
43
|
+
|
|
44
|
+
## Proof Points In Current Repo State
|
|
45
|
+
|
|
46
|
+
- Native Android (Kotlin) and iOS (Swift) implementations are present and tested (XCTest + JUnit)
|
|
47
|
+
- CLI package present at `cli/` with 8 commands; `monitor` has signal handling + failure bail
|
|
48
|
+
- Two reference example apps under `example-apps/`: `react-capacitor` (with app-update / app-review / background-update capability cards), `node-express` (minimal manifest-endpoint backend)
|
|
49
|
+
- Capacitor-wrapped React dashboard at `website/` with TanStack Query data plane + Radix Dialog + URL-state forms
|
|
50
|
+
- Laravel 11 + Nova 5 backend at `backend/` with full Pest test coverage (OAuth, Sanctum, Spatie, FormRequests, PayPal webhook, BundleUpload, UserLicense)
|
|
51
|
+
- Public Docusaurus docs site at sibling repo `native-update-docs`: 58 pages, ~76k words, Diátaxis-organized, Firebase Hosting deploy-ready with 7 discovery files (robots / llms / llms-full / humans / security / sitemap-index / sitemap) and 3 JSON-LD blocks per page
|
|
52
|
+
- Vitest-bench microbenchmark scaffold at `tools/bench/` for security-critical hot paths (SHA-256 + RSA-SHA256 verify)
|
|
53
|
+
- 3 GitHub Actions workflows: `ci.yml`, `release.yml` (tag-driven npm publish with provenance), `example-bundle.yml` (release+manual+weekly-cron signed bundle attached to GitHub Release)
|
|
54
|
+
- Android release readiness: signingConfigs + ProGuard/R8 + network_security_config + 10-section BUILD_FOR_PLAY_STORE.md runbook + 15 branded launcher PNGs + 11 splash PNGs + 3 Play Store graphics + screenshots/CAPTURE-GUIDE.md
|
|
55
|
+
- Pre-launch DIY pentest checklist at `docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md` (10 sections + 9 specific attack paths)
|
|
56
|
+
- Preventive repo-goes-public runbook at `docs/SECURITY-IF-REPO-PUBLIC.md`
|
|
57
|
+
- Current automated verification passed cleanly on 2026-05-19
|
|
58
|
+
|
|
59
|
+
## Resume / CV Summary
|
|
60
|
+
|
|
61
|
+
Built **Native Update**, an open-source Capacitor update platform (v3.0.1, MIT-licensed) that unifies OTA delivery, native app updates, in-app reviews, RSA signing and SHA-256 checksum verification, an 8-command CLI for release operations, two reference example apps, a Laravel 11 + Nova 5 SaaS backend with Sanctum-token + Spatie-RBAC dashboard auth, a Capacitor-wrapped React dashboard, a public 58-page Docusaurus docs site, and a Play-Store-publishable Android distribution.
|
|
62
|
+
|
|
63
|
+
## Resume-Ready Achievement Bullets
|
|
64
|
+
|
|
65
|
+
- Built and ship `native-update` v3.0.1 on NPM — an open-source Capacitor update platform combining OTA updates, app-store update flows, and in-app reviews, with native Kotlin/Swift implementations, 62 passing root TypeScript tests, 136 passing backend Pest tests, and a Detox E2E suite.
|
|
66
|
+
- Shipped a v3.0.0 BREAKING release that removed Firestore as a backend (~3000+ deletions) and routed all device → server traffic through a single Laravel HTTP API — cleaner ops, single source of truth, simpler reasoning for integrators.
|
|
67
|
+
- Swapped Firebase popup auth for Laravel Socialite + Sanctum personal access tokens + `spatie/laravel-permission` RBAC (super-admin / admin / user roles, `Gate::before` super-admin bypass, per-route `can:` middleware) in a single 2026-05-11 cutover — production-shape auth without Firebase lock-in.
|
|
68
|
+
- Built an entire ecosystem around the plugin: a Laravel 11 + Nova 5 SaaS backend, an 8-command CLI for release management, two reference example apps (React + Capacitor, Node.js + Express), and a React 19 + Vite 7 marketing/dashboard site (Capacitor-wrapped for Play Store) with full observability (Sentry + Clarity + Amplitude + page-view auto-track).
|
|
69
|
+
- Shipped a public Docusaurus documentation site (`native-update-docs` sibling repo, Firebase Hosting) with 58 Diátaxis-organized pages (~76k words), 7 discovery files (robots / llms / llms-full / humans / security / sitemap-index / sitemap), and 3 JSON-LD blocks per page — measurably AI-citable.
|
|
70
|
+
- Closed a 10-batch finalization audit on 2026-05-16 that made the Capacitor-wrapped dashboard Play-Store-publishable end-to-end: signingConfigs.release + ProGuard/R8 + network_security_config + 10-section BUILD_FOR_PLAY_STORE runbook + 15 branded launcher PNGs + 11 splash PNGs + Data Safety form + 4 rewritten legal pages.
|
|
71
|
+
- Adopted `native-update` as the canonical OTA strategy across the Ahsan project portfolio, eliminating store-resubmission cycles for content-only updates.
|
|
72
|
+
- Gated full-codebase audits behind a 7-day cooldown tracker to keep audit churn out of the commit log while preserving reproducible quality.
|
|
73
|
+
|
|
74
|
+
## Update History
|
|
75
|
+
|
|
76
|
+
| Date | Type | Notes |
|
|
77
|
+
| --- | --- | --- |
|
|
78
|
+
| 2026-05-19 | Material refresh | Major regeneration after 4 months of architecture change: covers v3.0.0 Firestore removal (2026-05-04), 2026-05-11 auth swap (Firebase Auth → Socialite + Sanctum + Spatie RBAC), 2026-05-11 public Docusaurus docs site shipped (58 pages, ~76k words), 2026-05-16 finalization audit closure (Play Store publishability), and 2026-05-18 Phase A Firebase/Firestore residue purge. Updated version 1.4.9 → 3.0.1, test counts 81 → 62/62 root + 136/136 backend, added public docs site URL, refreshed proof points to reflect Laravel + Nova + Capacitor-wrapped dashboard + GitHub Actions CI/CD + Android release readiness. Older dated profiles (2026-03-25, 2026-03-24, 2026-03-16) deleted in the same commit per user direction; this is the first dated profile for v3.x. |
|
|
79
|
+
| 2026-03-25 | Remediation | Updated verification snapshot to the Yarn-only root package workflow after removing npm and pnpm from the root package path. (file deleted 2026-05-19) |
|
|
80
|
+
| 2026-03-24 | Refreshed | Updated metadata, verification snapshot, and repo-state summary to match current package state. (file deleted 2026-05-19) |
|
|
81
|
+
| 2026-03-16 | Previous | Prior project profile version. (file deleted 2026-05-19) |
|