create-prenta 1.5.2 → 1.5.4
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/CHANGELOG.md +12 -0
- package/assets/prisma/migrations/0015_audit_remediation_indexes/migration.sql +79 -0
- package/assets/prisma/schema.prisma +4 -47
- package/dist/templates/admin-page.ts.template.d.ts.map +1 -1
- package/dist/templates/admin-page.ts.template.js +2 -0
- package/dist/templates/admin-page.ts.template.js.map +1 -1
- package/dist/templates/marketing-custom.js +28 -0
- package/dist/templates/marketing-custom.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# create-actuate-cms
|
|
2
2
|
|
|
3
|
+
## 1.5.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 08437e7: Teach the visual-stack page discipline everywhere an AI developer learns to build pages: a page is an ordered stack of small, single-purpose sections — one section per visual band of the design, added top to bottom — never one fat whole-page section. MCP server instructions and the `prenta://how-to-build-a-page` / `prenta://guide` resources now state the rule up front, and `create-prenta` ships it in the scaffolded `SECTIONS.md` and the `prenta-add-section` agent skill.
|
|
8
|
+
|
|
9
|
+
## 1.5.3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 63fb576: Tie API keys to the owner's lifecycle, enforce login lockout and per-email rate limits, ship HTML security headers from `withPrentaCMS` in the dev app, and harden search indexes, session storage, dashboard counts, RBAC defaults, keyset list cursors, and observability from the 22 August 2026 audit. Scaffolded projects pick up the same Prisma schema and 0015 migration.
|
|
14
|
+
|
|
3
15
|
## 1.5.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
-- Audit remediation (PERF-1/2/3/10, SEC-M1, QUAL-1).
|
|
2
|
+
-- Prefer transactional CREATE INDEX (not CONCURRENTLY) so `prisma migrate`
|
|
3
|
+
-- can run this in one transaction. For large production DBs, operators may
|
|
4
|
+
-- apply the equivalent `CREATE INDEX CONCURRENTLY` statements out of band.
|
|
5
|
+
|
|
6
|
+
DO $$
|
|
7
|
+
BEGIN
|
|
8
|
+
-- PGlite and slim Postgres images have no contrib package; skip rather
|
|
9
|
+
-- than fail the whole migration. Real hosts with postgresql-contrib
|
|
10
|
+
-- still get pg_trgm + the GIN indexes below.
|
|
11
|
+
IF EXISTS (SELECT 1 FROM pg_available_extensions WHERE name = 'pg_trgm') THEN
|
|
12
|
+
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
|
13
|
+
ELSE
|
|
14
|
+
RAISE NOTICE 'pg_trgm skipped (extension not available)';
|
|
15
|
+
END IF;
|
|
16
|
+
EXCEPTION
|
|
17
|
+
WHEN insufficient_privilege THEN
|
|
18
|
+
RAISE NOTICE 'pg_trgm skipped (insufficient privilege)';
|
|
19
|
+
WHEN undefined_file THEN
|
|
20
|
+
RAISE NOTICE 'pg_trgm skipped (extension files not present)';
|
|
21
|
+
WHEN feature_not_supported THEN
|
|
22
|
+
RAISE NOTICE 'pg_trgm skipped (not supported on this server)';
|
|
23
|
+
WHEN OTHERS THEN
|
|
24
|
+
RAISE NOTICE 'pg_trgm skipped (%)', SQLERRM;
|
|
25
|
+
END
|
|
26
|
+
$$;
|
|
27
|
+
|
|
28
|
+
-- Document search + live list (no partial index on status — measured regression).
|
|
29
|
+
DO $$
|
|
30
|
+
BEGIN
|
|
31
|
+
CREATE INDEX IF NOT EXISTS ix_doc_plain_text_trgm
|
|
32
|
+
ON "prenta_documents" USING GIN ("plainText" gin_trgm_ops);
|
|
33
|
+
CREATE INDEX IF NOT EXISTS ix_doc_title_trgm
|
|
34
|
+
ON "prenta_documents" USING GIN ("title" gin_trgm_ops);
|
|
35
|
+
EXCEPTION
|
|
36
|
+
WHEN undefined_object THEN
|
|
37
|
+
RAISE NOTICE 'pg_trgm GIN indexes skipped (operator class unavailable)';
|
|
38
|
+
WHEN OTHERS THEN
|
|
39
|
+
RAISE NOTICE 'pg_trgm GIN indexes skipped (%)', SQLERRM;
|
|
40
|
+
END
|
|
41
|
+
$$;
|
|
42
|
+
CREATE INDEX IF NOT EXISTS ix_doc_coll_live_updated
|
|
43
|
+
ON "prenta_documents" ("collection", "updatedAt" DESC)
|
|
44
|
+
WHERE "deletedAt" IS NULL;
|
|
45
|
+
|
|
46
|
+
-- Hash session JWTs at rest (skip rows that already look like SHA-256 hex).
|
|
47
|
+
UPDATE "prenta_sessions"
|
|
48
|
+
SET "token" = encode(sha256(convert_to("token", 'UTF8')), 'hex')
|
|
49
|
+
WHERE "token" LIKE '%.%.%';
|
|
50
|
+
|
|
51
|
+
-- FormSubmission: drop boolean indexes, add unread-badge + (formId, submittedAt).
|
|
52
|
+
DROP INDEX IF EXISTS "prenta_form_submissions_unread_idx";
|
|
53
|
+
DROP INDEX IF EXISTS "prenta_form_submissions_starred_idx";
|
|
54
|
+
DROP INDEX IF EXISTS "prenta_form_submissions_archived_idx";
|
|
55
|
+
DROP INDEX IF EXISTS "prenta_form_submissions_status_idx";
|
|
56
|
+
DROP INDEX IF EXISTS "prenta_form_submissions_spamStatus_idx";
|
|
57
|
+
CREATE INDEX IF NOT EXISTS ix_form_sub_unread_badge
|
|
58
|
+
ON "prenta_form_submissions" ("formId")
|
|
59
|
+
WHERE "unread" = true AND "archived" = false;
|
|
60
|
+
CREATE INDEX IF NOT EXISTS "prenta_form_submissions_formId_submittedAt_idx"
|
|
61
|
+
ON "prenta_form_submissions" ("formId", "submittedAt" DESC);
|
|
62
|
+
|
|
63
|
+
-- ContentLock / notifications / API keys
|
|
64
|
+
DELETE FROM "prenta_content_locks" t
|
|
65
|
+
WHERE t.ctid NOT IN (
|
|
66
|
+
SELECT min(ctid) FROM "prenta_content_locks" GROUP BY "documentId"
|
|
67
|
+
);
|
|
68
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "prenta_content_locks_documentId_key"
|
|
69
|
+
ON "prenta_content_locks" ("documentId");
|
|
70
|
+
CREATE INDEX IF NOT EXISTS "prenta_notifications_userId_idx"
|
|
71
|
+
ON "prenta_notifications" ("userId");
|
|
72
|
+
CREATE INDEX IF NOT EXISTS "prenta_api_keys_userId_idx"
|
|
73
|
+
ON "prenta_api_keys" ("userId");
|
|
74
|
+
|
|
75
|
+
-- Remove unused multi-site / backup / workflow stubs (QUAL-1).
|
|
76
|
+
DROP TABLE IF EXISTS "prenta_backup_records";
|
|
77
|
+
DROP TABLE IF EXISTS "prenta_workflow_states";
|
|
78
|
+
DROP TABLE IF EXISTS "prenta_sites";
|
|
79
|
+
ALTER TABLE "prenta_documents" DROP COLUMN IF EXISTS "siteId";
|
|
@@ -122,7 +122,6 @@ model User {
|
|
|
122
122
|
contentLocks ContentLock[]
|
|
123
123
|
notifications InAppNotification[]
|
|
124
124
|
contentTemplates ContentTemplate[]
|
|
125
|
-
workflowAssigned WorkflowState[]
|
|
126
125
|
passwordResetTokens PasswordResetToken[]
|
|
127
126
|
documentComments DocumentComment[]
|
|
128
127
|
documentNotifications DocumentNotification[]
|
|
@@ -179,6 +178,7 @@ model ApiKey {
|
|
|
179
178
|
|
|
180
179
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
181
180
|
|
|
181
|
+
@@index([userId])
|
|
182
182
|
@@map("prenta_api_keys")
|
|
183
183
|
}
|
|
184
184
|
|
|
@@ -236,7 +236,6 @@ model Document {
|
|
|
236
236
|
contentHash String?
|
|
237
237
|
structuredData Json?
|
|
238
238
|
contentGraph Json?
|
|
239
|
-
siteId String?
|
|
240
239
|
templateId String?
|
|
241
240
|
workflowStage WorkflowStage @default(DRAFT)
|
|
242
241
|
reviewerId String?
|
|
@@ -252,7 +251,6 @@ model Document {
|
|
|
252
251
|
mediaUsages MediaUsage[]
|
|
253
252
|
contentLocks ContentLock[]
|
|
254
253
|
contentIssues ContentIssue[]
|
|
255
|
-
workflowState WorkflowState?
|
|
256
254
|
|
|
257
255
|
@@unique([collection, slug])
|
|
258
256
|
@@index([collection])
|
|
@@ -373,6 +371,7 @@ model ContentLock {
|
|
|
373
371
|
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
374
372
|
user User @relation(fields: [userId], references: [id])
|
|
375
373
|
|
|
374
|
+
@@unique([documentId])
|
|
376
375
|
@@map("prenta_content_locks")
|
|
377
376
|
}
|
|
378
377
|
|
|
@@ -388,6 +387,7 @@ model InAppNotification {
|
|
|
388
387
|
|
|
389
388
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
390
389
|
|
|
390
|
+
@@index([userId])
|
|
391
391
|
@@map("prenta_notifications")
|
|
392
392
|
}
|
|
393
393
|
|
|
@@ -405,33 +405,6 @@ model ContentTemplate {
|
|
|
405
405
|
@@map("prenta_content_templates")
|
|
406
406
|
}
|
|
407
407
|
|
|
408
|
-
model Site {
|
|
409
|
-
id String @id @default(cuid())
|
|
410
|
-
domain String @unique
|
|
411
|
-
name String
|
|
412
|
-
configOverrides Json?
|
|
413
|
-
isDefault Boolean @default(false)
|
|
414
|
-
createdAt DateTime @default(now())
|
|
415
|
-
updatedAt DateTime @updatedAt
|
|
416
|
-
|
|
417
|
-
@@map("prenta_sites")
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
model WorkflowState {
|
|
421
|
-
id String @id @default(cuid())
|
|
422
|
-
documentId String @unique
|
|
423
|
-
currentStep Int @default(0)
|
|
424
|
-
assignedToId String?
|
|
425
|
-
status String @default("pending")
|
|
426
|
-
definition Json
|
|
427
|
-
createdAt DateTime @default(now())
|
|
428
|
-
updatedAt DateTime @updatedAt
|
|
429
|
-
|
|
430
|
-
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
431
|
-
assignedTo User? @relation(fields: [assignedToId], references: [id])
|
|
432
|
-
|
|
433
|
-
@@map("prenta_workflow_states")
|
|
434
|
-
}
|
|
435
408
|
|
|
436
409
|
model Redirect {
|
|
437
410
|
id String @id @default(cuid())
|
|
@@ -670,13 +643,9 @@ model FormSubmission {
|
|
|
670
643
|
deliveries FormDeliveryAttempt[]
|
|
671
644
|
|
|
672
645
|
@@index([formId])
|
|
673
|
-
@@index([status])
|
|
674
|
-
@@index([unread])
|
|
675
|
-
@@index([starred])
|
|
676
|
-
@@index([archived])
|
|
677
|
-
@@index([spamStatus])
|
|
678
646
|
@@index([submittedAt])
|
|
679
647
|
@@index([senderEmail])
|
|
648
|
+
@@index([formId, submittedAt])
|
|
680
649
|
@@map("prenta_form_submissions")
|
|
681
650
|
}
|
|
682
651
|
|
|
@@ -760,18 +729,6 @@ model FormDeliveryAttempt {
|
|
|
760
729
|
@@map("prenta_form_delivery_attempts")
|
|
761
730
|
}
|
|
762
731
|
|
|
763
|
-
model BackupRecord {
|
|
764
|
-
id String @id @default(cuid())
|
|
765
|
-
filename String
|
|
766
|
-
storageKey String
|
|
767
|
-
sizeBytes Int
|
|
768
|
-
type String
|
|
769
|
-
metadata Json?
|
|
770
|
-
createdAt DateTime @default(now())
|
|
771
|
-
|
|
772
|
-
@@map("prenta_backup_records")
|
|
773
|
-
}
|
|
774
|
-
|
|
775
732
|
model WebhookEndpoint {
|
|
776
733
|
id String @id @default(cuid())
|
|
777
734
|
url String
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-page.ts.template.d.ts","sourceRoot":"","sources":["../../src/templates/admin-page.ts.template.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"admin-page.ts.template.d.ts","sourceRoot":"","sources":["../../src/templates/admin-page.ts.template.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAyJxE"}
|
|
@@ -128,6 +128,8 @@ export function generateAdminPage(options = {}) {
|
|
|
128
128
|
' );',
|
|
129
129
|
' }',
|
|
130
130
|
'',
|
|
131
|
+
' // Optional: themeChrome={{ header: ClientSiteHeader, footer: ClientSiteFooter }}',
|
|
132
|
+
' // Client-safe only — never put React on prenta.config.ts. View site stays the pixel check.',
|
|
131
133
|
' return (',
|
|
132
134
|
' <AdminRoot',
|
|
133
135
|
' config={config}',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-page.ts.template.js","sourceRoot":"","sources":["../../src/templates/admin-page.ts.template.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin-page.ts.template.js","sourceRoot":"","sources":["../../src/templates/admin-page.ts.template.ts"],"names":[],"mappings":"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"}
|
|
@@ -516,6 +516,15 @@ SSR-safe (the public site renders them on the server) — presentational
|
|
|
516
516
|
components under \`${blocksDir}\` satisfy both. A renderer that throws falls back
|
|
517
517
|
to a structural placeholder in the canvas automatically.
|
|
518
518
|
|
|
519
|
+
## The visual stack
|
|
520
|
+
|
|
521
|
+
A page is an ordered stack of small, single-purpose sections — one section per
|
|
522
|
+
visual band of the design (hero, stats, pricing, CTA, …), added top to bottom
|
|
523
|
+
in the Page editor canvas. Reuse an existing type for each band before adding a
|
|
524
|
+
new one, and never build a "fat" type that holds an entire page: if a type's
|
|
525
|
+
fields describe more than one visual band, split it. The canvas outline should
|
|
526
|
+
read as the design's band list.
|
|
527
|
+
|
|
519
528
|
## Adding sections from a design (agent)
|
|
520
529
|
|
|
521
530
|
This project ships an agent skill at
|
|
@@ -689,6 +698,25 @@ it renders identically on the public site. Follow this contract exactly — it
|
|
|
689
698
|
keeps the pieces in sync so a section never renders in one place but breaks in
|
|
690
699
|
another.
|
|
691
700
|
|
|
701
|
+
## The visual stack (page-level rule)
|
|
702
|
+
|
|
703
|
+
A page is a **visual stack**: an ordered list of small, single-purpose sections
|
|
704
|
+
(\`data.sections\`), one section per visual band of the design (hero, logos,
|
|
705
|
+
stats, features, pricing, testimonials, FAQ, CTA, …), added top to bottom. When
|
|
706
|
+
asked to build a whole page from a design:
|
|
707
|
+
|
|
708
|
+
1. Slice the design into horizontal bands and map each band to an existing
|
|
709
|
+
section type first (\`marketingSectionTypes\`, or \`list_section_types\` over
|
|
710
|
+
MCP).
|
|
711
|
+
2. Follow this skill once per band that has no matching type — each new type
|
|
712
|
+
stays single-purpose.
|
|
713
|
+
3. **Never** create one section type that holds the entire page, and never
|
|
714
|
+
stretch one type's fields across several bands. If a type's fields describe
|
|
715
|
+
more than one band, split it.
|
|
716
|
+
|
|
717
|
+
The page's canvas outline should read as the design's band list — one row per
|
|
718
|
+
band. If it doesn't, the build is wrong even when the rendered page looks right.
|
|
719
|
+
|
|
692
720
|
## The model — two files (+ optional block + seed)
|
|
693
721
|
|
|
694
722
|
1. **Schema** — an entry in \`marketingSectionTypes\` in \`${typesPath}\`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketing-custom.js","sourceRoot":"","sources":["../../src/templates/marketing-custom.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"marketing-custom.js","sourceRoot":"","sources":["../../src/templates/marketing-custom.ts"],"names":[],"mappings":"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"}
|