genesis-stack 1.1.3 → 1.1.5

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 CHANGED
@@ -49,6 +49,11 @@ Do not add technology-specific knowledge or dependencies to
49
49
  `genesis-compiler`, and do not create one catalog package per framework unless
50
50
  the single-catalog model becomes genuinely unworkable.
51
51
 
52
+ The `sqlite` piece covers persistent filenames, transactions, migrations and
53
+ consistent backups. `laravel-sqlite` adds Laravel's `DB_DATABASE` filename
54
+ binding and `DB_CONNECTION=sqlite` default. Hosts own provisioning; applications
55
+ own schema changes and preservation of existing data during adoption.
56
+
52
57
  ## Resource-estimate proposals
53
58
 
54
59
  JSKIT proposes Vibe64's optional `Resource estimates` section for its concrete
@@ -4,16 +4,24 @@
4
4
  {
5
5
  "id": "jskit/public",
6
6
  "technology": "jskit",
7
- "name": "JSKIT · Public app",
8
- "description": "Fastify and Vue with an adaptive shell. No accounts or database.",
7
+ "name": "JSKIT · Basic app",
8
+ "description": "Adaptive shell and ready unit, client and browser tests. No accounts or database.",
9
9
  "repository": "https://github.com/vibe64-dev/seed-jskit.git",
10
10
  "branch": "public"
11
11
  },
12
+ {
13
+ "id": "jskit/database",
14
+ "technology": "jskit",
15
+ "name": "JSKIT · Database app",
16
+ "description": "Adaptive shell, MySQL migrations and isolated database/browser tests. No accounts.",
17
+ "repository": "https://github.com/vibe64-dev/seed-jskit.git",
18
+ "branch": "database"
19
+ },
12
20
  {
13
21
  "id": "jskit/accounts",
14
22
  "technology": "jskit",
15
- "name": "JSKIT · Accounts and database",
16
- "description": "Adaptive shell, sign-up and login, a private home, and MySQL persistence.",
23
+ "name": "JSKIT · Accounts app",
24
+ "description": "Sign-up, login, a private home, MySQL persistence and isolated database/browser tests.",
17
25
  "repository": "https://github.com/vibe64-dev/seed-jskit.git",
18
26
  "branch": "accounts"
19
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genesis-stack",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "The optional curated technology Stack catalog for Genesis projects.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -111,6 +111,18 @@ https://mobily-enterprises.github.io/jskit-ai/
111
111
 
112
112
  - Dotenv `.env`
113
113
 
114
+ ## UI discovery
115
+
116
+ ### Discovery `vue-pages`: Application pages
117
+
118
+ - Adapter: `jskit`
119
+ - Surface: `app`
120
+ - Mode: `filesystem`
121
+ - Page root: `src/pages`
122
+ - Registration: `vite.config.mjs`
123
+ - Component root: `src/components`
124
+ - Component root: `packages`
125
+
114
126
  ## City regions
115
127
 
116
128
  - Ignore `**/test/**`
@@ -12,6 +12,7 @@ Laravel MySQL connection, migration, Eloquent, and database environment conventi
12
12
  ## Conflicts
13
13
 
14
14
  - `laravel-postgresql`
15
+ - `laravel-sqlite`
15
16
 
16
17
  ## Environment defaults
17
18
 
@@ -12,6 +12,7 @@ Laravel PostgreSQL connection, migration, Eloquent, and database environment con
12
12
  ## Conflicts
13
13
 
14
14
  - `laravel-mysql`
15
+ - `laravel-sqlite`
15
16
 
16
17
  ## Environment defaults
17
18
 
@@ -0,0 +1,57 @@
1
+ # Stack piece: laravel-sqlite
2
+
3
+ ## Description
4
+
5
+ Laravel SQLite connection, migration, and database filename conventions.
6
+
7
+ ## Requires
8
+
9
+ - `laravel`
10
+ - `sqlite`
11
+
12
+ ## Conflicts
13
+
14
+ - `laravel-mysql`
15
+ - `laravel-postgresql`
16
+
17
+ ## Environment defaults
18
+
19
+ - Default `DB_CONNECTION`: `sqlite`
20
+
21
+ ## Resources
22
+
23
+ ```json genesis-resource
24
+ {
25
+ "id": "database",
26
+ "kind": "sqlite",
27
+ "environmentAlternatives": [
28
+ {
29
+ "bindings": {
30
+ "database": "DB_DATABASE"
31
+ },
32
+ "preferred": true
33
+ }
34
+ ]
35
+ }
36
+ ```
37
+
38
+ ## Guidance
39
+
40
+ - Confirm `config/database.php` uses `DB_DATABASE` for the SQLite filename and
41
+ `DB_CONNECTION` for the driver. Keep the project Resource contract aligned
42
+ with any application-specific names. Laravel expects an absolute filename;
43
+ preserve a host-supplied value. For standalone setup, create the selected file
44
+ only if absent and configure its absolute path before migration.
45
+ - Verify the selected PHP runtime includes `pdo_sqlite`. Use the application's
46
+ migrations and seeders, and declare their exact commands in the project setup
47
+ and deployment contracts. Repeated setup must preserve records, the migration
48
+ ledger, and the existing application key; do not use `migrate:fresh` or
49
+ regenerate keys as routine preparation.
50
+ - Consult the installed Laravel version's SQLite configuration documentation at
51
+ `https://laravel.com/docs/database#sqlite-configuration`.
52
+
53
+ ## Adoption
54
+
55
+ - Read the database configuration and existing environment before declaring
56
+ readiness. Preserve any existing SQLite data when adopting managed storage.
57
+ Verify migrations on the configured file and keep test connections separate.
@@ -55,7 +55,7 @@ conventions. Authoritative framework documentation: https://laravel.com/docs/
55
55
  - Record actual Composer and frontend installation, test, build, development,
56
56
  queue, scheduler, migration, and production operations. Do not assume the
57
57
  catalog proposal matches an older application.
58
- - When the app uses MySQL or PostgreSQL, select the matching Laravel database
58
+ - When the app uses MySQL, PostgreSQL or SQLite, select the matching Laravel database
59
59
  integration so its conventional environment names become explicit.
60
60
 
61
61
  ## Environment files
@@ -34,6 +34,18 @@ Node.js package, command, module, dependency, and test conventions.
34
34
  - Identify the package manager from the lockfile and preserve the existing
35
35
  module system, supported Node.js version, package entrypoints, and executable
36
36
  commands.
37
+ - For optional architecture package boundaries, propose a project-owned
38
+ `## Package discovery` section with `### Discovery \`npm\`: Direct dependencies`,
39
+ `- Adapter: \`npm\``, `- Manifest: \`package.json\`` and
40
+ `- Package root: \`node_modules\``. These are npm's usual project defaults,
41
+ not a scan of every manifest or dependency tree. Declare additional manifests
42
+ explicitly for independent packages, relative to the project; the package root
43
+ is relative to each manifest's directory. Preserve an existing declaration.
44
+ Only direct declarations and declared public entry files are inspected.
45
+ Project-owned `file:` dependencies remain inspectable source; installed
46
+ external packages are opaque. Linked or unavailable entries, runtime exports,
47
+ re-exports and unsupported parsers retain explicit partial coverage. Do not
48
+ install dependencies just to open an architecture view.
37
49
  - Record the source's real dependency installation, build, verification,
38
50
  development, and production commands. Do not assume `npm run develop`,
39
51
  `npm test`, or `npm start` exists merely because a current foundation uses it.
@@ -0,0 +1,44 @@
1
+ # Stack piece: sqlite
2
+
3
+ ## Description
4
+
5
+ SQLite file-backed persistence, migrations, and backup conventions.
6
+
7
+ ## Requires
8
+
9
+ - Nothing.
10
+
11
+ ## Guidance
12
+
13
+ - For application integrations and payments, `integrations.json` remains the
14
+ configuration authority; SQLite stores app-owned connections, provider mappings,
15
+ event receipts, subscriptions and credit records only when the app needs them.
16
+ Keep provider secrets under the application's secret-storage policy.
17
+ - Provider calls, signature verification and authorization belong to the app's
18
+ runtime. Database configuration alone does not implement a provider, and the
19
+ editor does not acquire ownership of application billing records.
20
+ - Use the application's existing SQLite driver and migration owner. Declare a
21
+ persistent database filename through the `database` resource semantic and
22
+ the environment name the application actually reads. A driver selector such
23
+ as `DB_CONNECTION=sqlite` is configuration, not a database filename.
24
+ - Keep durable database files outside disposable build and release directories.
25
+ A host may supply a persistent filename; do not replace that value with a
26
+ repository-relative default or recreate an existing database during setup.
27
+ - Use transactions, foreign-key enforcement, and bounded busy handling. Prove
28
+ concurrent writes using SQLite itself; a different engine does not establish
29
+ SQLite's locking behavior.
30
+ - Use SQLite's online backup API or `VACUUM INTO` for a consistent backup of a
31
+ running database, including committed WAL data. Do not copy only the main file
32
+ while writers are active. Validate backups and prove restoration before
33
+ removing the original. See `https://www.sqlite.org/backup.html`.
34
+ - Keep test databases separate from development and production. In-memory
35
+ databases are useful for tests but are not persistent application resources.
36
+
37
+ ## Adoption
38
+
39
+ - Identify the configured database filename, driver, migration ledger, journal
40
+ mode, and any existing data before changing configuration. Preserve a verified
41
+ snapshot before moving data to a host-managed filename. Do not silently switch
42
+ an existing application to an empty database.
43
+ - Distinguish fresh creation from migrations of retained data. Record app-owned
44
+ migration and optional seed commands without resetting the database.