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 +5 -0
- package/genesis.templates.json +12 -4
- package/package.json +1 -1
- package/stacks/pieces/jskit.md +12 -0
- package/stacks/pieces/laravel-mysql.md +1 -0
- package/stacks/pieces/laravel-postgresql.md +1 -0
- package/stacks/pieces/laravel-sqlite.md +57 -0
- package/stacks/pieces/laravel.md +1 -1
- package/stacks/pieces/nodejs.md +12 -0
- package/stacks/pieces/sqlite.md +44 -0
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
|
package/genesis.templates.json
CHANGED
|
@@ -4,16 +4,24 @@
|
|
|
4
4
|
{
|
|
5
5
|
"id": "jskit/public",
|
|
6
6
|
"technology": "jskit",
|
|
7
|
-
"name": "JSKIT ·
|
|
8
|
-
"description": "
|
|
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
|
|
16
|
-
"description": "
|
|
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
package/stacks/pieces/jskit.md
CHANGED
|
@@ -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/**`
|
|
@@ -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.
|
package/stacks/pieces/laravel.md
CHANGED
|
@@ -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
|
|
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
|
package/stacks/pieces/nodejs.md
CHANGED
|
@@ -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.
|