@prenta/core 4.3.2 → 5.0.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/CHANGELOG.md +11 -0
- package/dist/actions.d.ts +8 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +60 -21
- package/dist/actions.js.map +1 -1
- package/dist/ai/brand-voice-document.d.ts.map +1 -1
- package/dist/ai/brand-voice-document.js +4 -2
- package/dist/ai/brand-voice-document.js.map +1 -1
- package/dist/ai/brand-voice-structured.d.ts.map +1 -1
- package/dist/ai/brand-voice-structured.js +24 -9
- package/dist/ai/brand-voice-structured.js.map +1 -1
- package/dist/api/auth-context.d.ts +3 -0
- package/dist/api/auth-context.d.ts.map +1 -0
- package/dist/api/auth-context.js +3 -0
- package/dist/api/auth-context.js.map +1 -0
- package/dist/api/handler-factory.d.ts.map +1 -1
- package/dist/api/handler-factory.js +8 -2
- package/dist/api/handler-factory.js.map +1 -1
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +2 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/limiters.d.ts +3 -0
- package/dist/api/limiters.d.ts.map +1 -0
- package/dist/api/limiters.js +3 -0
- package/dist/api/limiters.js.map +1 -0
- package/dist/api/pagination.d.ts +3 -0
- package/dist/api/pagination.d.ts.map +1 -0
- package/dist/api/pagination.js +3 -0
- package/dist/api/pagination.js.map +1 -0
- package/dist/api/responses.d.ts +3 -0
- package/dist/api/responses.d.ts.map +1 -0
- package/dist/api/responses.js +3 -0
- package/dist/api/responses.js.map +1 -0
- package/dist/api/route-helpers.d.ts +12 -0
- package/dist/api/route-helpers.d.ts.map +1 -1
- package/dist/api/route-helpers.js +47 -2
- package/dist/api/route-helpers.js.map +1 -1
- package/dist/api/routes/auth.d.ts.map +1 -1
- package/dist/api/routes/auth.js +103 -30
- package/dist/api/routes/auth.js.map +1 -1
- package/dist/api/routes/dashboard.d.ts.map +1 -1
- package/dist/api/routes/dashboard.js +11 -4
- package/dist/api/routes/dashboard.js.map +1 -1
- package/dist/api/routes/documents.d.ts.map +1 -1
- package/dist/api/routes/documents.js +11 -1
- package/dist/api/routes/documents.js.map +1 -1
- package/dist/api/routes/media.d.ts.map +1 -1
- package/dist/api/routes/media.js +7 -24
- package/dist/api/routes/media.js.map +1 -1
- package/dist/api/routes/meta.js +1 -1
- package/dist/api/routes/meta.js.map +1 -1
- package/dist/api/routes/seo-public.d.ts.map +1 -1
- package/dist/api/routes/seo-public.js +12 -4
- package/dist/api/routes/seo-public.js.map +1 -1
- package/dist/api/routes/seo.d.ts.map +1 -1
- package/dist/api/routes/seo.js +4 -0
- package/dist/api/routes/seo.js.map +1 -1
- package/dist/api/routes/system.d.ts.map +1 -1
- package/dist/api/routes/system.js +101 -1
- package/dist/api/routes/system.js.map +1 -1
- package/dist/api/routes/users.d.ts.map +1 -1
- package/dist/api/routes/users.js +4 -1
- package/dist/api/routes/users.js.map +1 -1
- package/dist/auth/oauth.js +2 -2
- package/dist/auth/oauth.js.map +1 -1
- package/dist/auth/session.d.ts +2 -0
- package/dist/auth/session.d.ts.map +1 -1
- package/dist/auth/session.js +5 -0
- package/dist/auth/session.js.map +1 -1
- package/dist/auth/user-admin.d.ts +2 -0
- package/dist/auth/user-admin.d.ts.map +1 -1
- package/dist/auth/user-admin.js +16 -0
- package/dist/auth/user-admin.js.map +1 -1
- package/dist/cache/http.d.ts.map +1 -1
- package/dist/cache/http.js +4 -2
- package/dist/cache/http.js.map +1 -1
- package/dist/content/extract.js +1 -1
- package/dist/content/extract.js.map +1 -1
- package/dist/content-health/scanner.d.ts.map +1 -1
- package/dist/content-health/scanner.js +5 -4
- package/dist/content-health/scanner.js.map +1 -1
- package/dist/db/model-types.d.ts +0 -36
- package/dist/db/model-types.d.ts.map +1 -1
- package/dist/diagnostics/logger.d.ts.map +1 -1
- package/dist/diagnostics/logger.js +22 -28
- package/dist/diagnostics/logger.js.map +1 -1
- package/dist/diagnostics/sentry.d.ts.map +1 -1
- package/dist/diagnostics/sentry.js +12 -0
- package/dist/diagnostics/sentry.js.map +1 -1
- package/dist/forms/files.d.ts +2 -2
- package/dist/forms/files.d.ts.map +1 -1
- package/dist/forms/files.js +2 -14
- package/dist/forms/files.js.map +1 -1
- package/dist/forms/submission.d.ts.map +1 -1
- package/dist/forms/submission.js +6 -4
- package/dist/forms/submission.js.map +1 -1
- package/dist/generated/browser.d.ts +0 -15
- package/dist/generated/client.d.ts +0 -15
- package/dist/generated/internal/class.d.ts +0 -33
- package/dist/generated/internal/class.js +4 -4
- package/dist/generated/internal/prismaNamespace.d.ts +1 -282
- package/dist/generated/internal/prismaNamespace.js +0 -50
- package/dist/generated/internal/prismaNamespaceBrowser.d.ts +0 -56
- package/dist/generated/internal/prismaNamespaceBrowser.js +0 -50
- package/dist/generated/models/ContentLock.d.ts +2 -2
- package/dist/generated/models/Document.d.ts +1 -274
- package/dist/generated/models/User.d.ts +0 -281
- package/dist/generated/models.d.ts +0 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/presence/index.d.ts.map +1 -1
- package/dist/presence/index.js +6 -2
- package/dist/presence/index.js.map +1 -1
- package/dist/security/access.d.ts +9 -5
- package/dist/security/access.d.ts.map +1 -1
- package/dist/security/access.js +28 -15
- package/dist/security/access.js.map +1 -1
- package/dist/security/audit.d.ts.map +1 -1
- package/dist/security/audit.js +1 -0
- package/dist/security/audit.js.map +1 -1
- package/dist/security/center/index.d.ts +2 -2
- package/dist/security/center/index.d.ts.map +1 -1
- package/dist/security/center/index.js +1 -1
- package/dist/security/center/index.js.map +1 -1
- package/dist/security/center/settings.d.ts +2 -0
- package/dist/security/center/settings.d.ts.map +1 -1
- package/dist/security/center/settings.js +38 -0
- package/dist/security/center/settings.js.map +1 -1
- package/dist/security/center/types.d.ts +8 -0
- package/dist/security/center/types.d.ts.map +1 -1
- package/dist/security/encrypted-fields.d.ts +1 -1
- package/dist/security/encrypted-fields.d.ts.map +1 -1
- package/dist/security/encrypted-fields.js +4 -3
- package/dist/security/encrypted-fields.js.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +1 -1
- package/dist/security/index.js.map +1 -1
- package/dist/security/upload.d.ts +10 -0
- package/dist/security/upload.d.ts.map +1 -1
- package/dist/security/upload.js +32 -0
- package/dist/security/upload.js.map +1 -1
- package/dist/seo/llms-txt.d.ts.map +1 -1
- package/dist/seo/llms-txt.js +1 -0
- package/dist/seo/llms-txt.js.map +1 -1
- package/package.json +2 -1
- package/prisma/migrations/0015_audit_remediation_indexes/migration.sql +79 -0
- package/prisma/schema.prisma +4 -47
- package/schema-fragments/cms-schema.prisma +0 -1
- package/dist/generated/models/BackupRecord.d.ts +0 -1100
- package/dist/generated/models/BackupRecord.js +0 -1
- package/dist/generated/models/Site.d.ts +0 -1062
- package/dist/generated/models/Site.js +0 -1
- package/dist/generated/models/WorkflowState.d.ts +0 -1436
- package/dist/generated/models/WorkflowState.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encrypted-fields.js","sourceRoot":"","sources":["../../src/security/encrypted-fields.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,SAAS,CAAA;AAC3B,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,UAAU,GAAG,GAAG,CAAA;AACtB,MAAM,SAAS,GAAG,EAAE,CAAA,CAAC,oCAAoC;AACzD,MAAM,cAAc,GAAG,SAAS,GAAG,CAAC,CAAA;AAEpC,MAAM,MAAM,GAAG,gBAAgB,CAAA;AAE/B;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,MAAc;QACxB,KAAK,CACH,+CAA+C,MAAM,IAAI;YACvD,6BAA6B;YAC7B,0EAA0E,CAC7E,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACzC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,MAAc;IACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,yBAAyB,CAAC,8BAA8B,CAAC,CAAA;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACrC,MAAM,IAAI,yBAAyB,CACjC,eAAe,cAAc,oBAAoB,SAAS,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAC1F,CAAA;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,yBAAyB,CAAC,kDAAkD,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,MAAc;IAC9D,WAAW,CAAC,MAAM,CAAC,CAAA;IACnB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAE/C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAC9C,GAAG,EACH,OAAO,CACR,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAEnD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"encrypted-fields.js","sourceRoot":"","sources":["../../src/security/encrypted-fields.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,SAAS,CAAA;AAC3B,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,UAAU,GAAG,GAAG,CAAA;AACtB,MAAM,SAAS,GAAG,EAAE,CAAA,CAAC,oCAAoC;AACzD,MAAM,cAAc,GAAG,SAAS,GAAG,CAAC,CAAA;AAEpC,MAAM,MAAM,GAAG,gBAAgB,CAAA;AAE/B;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,MAAc;QACxB,KAAK,CACH,+CAA+C,MAAM,IAAI;YACvD,6BAA6B;YAC7B,0EAA0E,CAC7E,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACzC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,MAAc;IACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,yBAAyB,CAAC,8BAA8B,CAAC,CAAA;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACrC,MAAM,IAAI,yBAAyB,CACjC,eAAe,cAAc,oBAAoB,SAAS,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAC1F,CAAA;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,yBAAyB,CAAC,kDAAkD,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,MAAc;IAC9D,WAAW,CAAC,MAAM,CAAC,CAAA;IACnB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAE/C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAC9C,GAAG,EACH,OAAO,CACR,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAEnD,OAAO,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAA;AACtC,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,MAAc;IAClE,WAAW,CAAC,MAAM,CAAC,CAAA;IACnB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAExC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAC9C,GAAG,EACH,UAAU,CACX,CAAA;IAED,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAc;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAkC,EAAE,SAAS,EAAE,KAAK,EAAE;QAC1F,SAAS;QACT,SAAS;KACV,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAkB;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IACrB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/dist/security/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { generateToken as generateCsrfToken, validateToken as validateCsrfToken
|
|
|
4
4
|
export { createRateLimiter } from './rate-limit.js';
|
|
5
5
|
export type { RateLimiter, RateLimitConfig, RateLimitResult } from './rate-limit.js';
|
|
6
6
|
export { sanitizeHtml, stripHtml } from './sanitize.js';
|
|
7
|
-
export { validateMimeType, checkMagicBytes } from './upload.js';
|
|
7
|
+
export { validateMimeType, checkMagicBytes, MEDIA_UPLOAD_ALLOWED_MIME_TYPES, FORM_UPLOAD_ALLOWED_MIME_TYPES, } from './upload.js';
|
|
8
8
|
export { validateWebhookUrl, resolveAndCheck } from './webhook.js';
|
|
9
9
|
export { logEvent, getAuditLog } from './audit.js';
|
|
10
10
|
export type { AuditEntry, AuditLogQuery, AuditLogResult } from './audit.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEpF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"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"}
|
package/dist/security/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export { checkAccess, getPermissionsForRole, filterFieldsByRole, filterWritableF
|
|
|
2
2
|
export { generateToken as generateCsrfToken, validateToken as validateCsrfToken } from './csrf.js';
|
|
3
3
|
export { createRateLimiter } from './rate-limit.js';
|
|
4
4
|
export { sanitizeHtml, stripHtml } from './sanitize.js';
|
|
5
|
-
export { validateMimeType, checkMagicBytes } from './upload.js';
|
|
5
|
+
export { validateMimeType, checkMagicBytes, MEDIA_UPLOAD_ALLOWED_MIME_TYPES, FORM_UPLOAD_ALLOWED_MIME_TYPES, } from './upload.js';
|
|
6
6
|
export { validateWebhookUrl, resolveAndCheck } from './webhook.js';
|
|
7
7
|
export { logEvent, getAuditLog } from './audit.js';
|
|
8
8
|
export { getSecurityHeaders } from './headers.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGnD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGnD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG5E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAG1C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAG3E,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,cAAc,CAAA;AASrB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG1D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAG7D,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -5,6 +5,16 @@ export interface FileValidationResult {
|
|
|
5
5
|
}
|
|
6
6
|
declare const ALLOWED_IMAGE_TYPES: Set<string>;
|
|
7
7
|
declare const ALLOWED_DOCUMENT_TYPES: Set<string>;
|
|
8
|
+
/**
|
|
9
|
+
* Single media-library allowlist (QUAL-9). Media uploads must use this set —
|
|
10
|
+
* do not keep a parallel list in the route module.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MEDIA_UPLOAD_ALLOWED_MIME_TYPES: readonly string[];
|
|
13
|
+
/**
|
|
14
|
+
* Conservative form-attachment allowlist. Subset of the shared image/document
|
|
15
|
+
* sets — no SVG or AV media (XSS / unexpected playback on public forms).
|
|
16
|
+
*/
|
|
17
|
+
export declare const FORM_UPLOAD_ALLOWED_MIME_TYPES: readonly string[];
|
|
8
18
|
/**
|
|
9
19
|
* Validate a file's declared MIME type against an allowlist.
|
|
10
20
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/security/upload.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,QAAA,MAAM,mBAAmB,aAOvB,CAAA;AAEF,QAAA,MAAM,sBAAsB,aAM1B,CAAA;
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/security/upload.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,QAAA,MAAM,mBAAmB,aAOvB,CAAA;AAEF,QAAA,MAAM,sBAAsB,aAM1B,CAAA;AAUF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAE,SAAS,MAAM,EAI5D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAW3D,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GACzD,OAAO,CAOT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,EACxC,gBAAgB,EAAE,MAAM,GACvB,oBAAoB,CA6BtB;AAgED,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,CAAA"}
|
package/dist/security/upload.js
CHANGED
|
@@ -13,6 +13,38 @@ const ALLOWED_DOCUMENT_TYPES = new Set([
|
|
|
13
13
|
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
14
14
|
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
15
15
|
]);
|
|
16
|
+
const ALLOWED_MEDIA_TYPES = new Set([
|
|
17
|
+
'video/mp4',
|
|
18
|
+
'video/webm',
|
|
19
|
+
'audio/mpeg',
|
|
20
|
+
'audio/ogg',
|
|
21
|
+
'audio/wav',
|
|
22
|
+
]);
|
|
23
|
+
/**
|
|
24
|
+
* Single media-library allowlist (QUAL-9). Media uploads must use this set —
|
|
25
|
+
* do not keep a parallel list in the route module.
|
|
26
|
+
*/
|
|
27
|
+
export const MEDIA_UPLOAD_ALLOWED_MIME_TYPES = [
|
|
28
|
+
...ALLOWED_IMAGE_TYPES,
|
|
29
|
+
'application/pdf',
|
|
30
|
+
...ALLOWED_MEDIA_TYPES,
|
|
31
|
+
];
|
|
32
|
+
/**
|
|
33
|
+
* Conservative form-attachment allowlist. Subset of the shared image/document
|
|
34
|
+
* sets — no SVG or AV media (XSS / unexpected playback on public forms).
|
|
35
|
+
*/
|
|
36
|
+
export const FORM_UPLOAD_ALLOWED_MIME_TYPES = [
|
|
37
|
+
'image/jpeg',
|
|
38
|
+
'image/png',
|
|
39
|
+
'image/gif',
|
|
40
|
+
'image/webp',
|
|
41
|
+
'image/avif',
|
|
42
|
+
'application/pdf',
|
|
43
|
+
'text/plain',
|
|
44
|
+
'text/csv',
|
|
45
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
46
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
47
|
+
];
|
|
16
48
|
/**
|
|
17
49
|
* Validate a file's declared MIME type against an allowlist.
|
|
18
50
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/security/upload.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/security/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../../src/seo/llms-txt.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../../src/seo/llms-txt.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBvF;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CA4DnF"}
|
package/dist/seo/llms-txt.js
CHANGED
|
@@ -16,6 +16,7 @@ export function sanitizeLlmsText(raw, maxLen) {
|
|
|
16
16
|
return '';
|
|
17
17
|
let s = raw
|
|
18
18
|
// Strip control characters (incl. newlines, tabs, zero-width) → space.
|
|
19
|
+
// eslint-disable-next-line no-control-regex -- strip C0 controls from model text
|
|
19
20
|
.replace(/[\u0000-\u001F\u007F\u200B-\u200D\uFEFF]/g, ' ')
|
|
20
21
|
// Remove characters that break markdown link syntax in the list item.
|
|
21
22
|
.replace(/[[\]()]/g, '')
|
package/dist/seo/llms-txt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../../src/seo/llms-txt.ts"],"names":[],"mappings":"AAaA,MAAM,eAAe,GAAG,GAAG,CAAA;AAC3B,MAAM,SAAS,GAAG,GAAG,CAAA;AAErB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAA8B,EAAE,MAAc;IAC7E,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,IAAI,CAAC,GAAG,GAAG;QACT,uEAAuE;
|
|
1
|
+
{"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../../src/seo/llms-txt.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prenta/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -248,6 +248,7 @@
|
|
|
248
248
|
"build": "prisma generate && tsc --project tsconfig.json && tsc --project tsconfig.generated.json",
|
|
249
249
|
"dev": "tsc --project tsconfig.json --watch",
|
|
250
250
|
"test": "vitest run",
|
|
251
|
+
"lint": "eslint src --max-warnings=-1",
|
|
251
252
|
"type-check": "tsc --noEmit",
|
|
252
253
|
"clean": "rm -rf dist generated"
|
|
253
254
|
}
|
|
@@ -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";
|
package/prisma/schema.prisma
CHANGED
|
@@ -128,7 +128,6 @@ model User {
|
|
|
128
128
|
contentLocks ContentLock[]
|
|
129
129
|
notifications InAppNotification[]
|
|
130
130
|
contentTemplates ContentTemplate[]
|
|
131
|
-
workflowAssigned WorkflowState[]
|
|
132
131
|
passwordResetTokens PasswordResetToken[]
|
|
133
132
|
documentComments DocumentComment[]
|
|
134
133
|
documentNotifications DocumentNotification[]
|
|
@@ -185,6 +184,7 @@ model ApiKey {
|
|
|
185
184
|
|
|
186
185
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
187
186
|
|
|
187
|
+
@@index([userId])
|
|
188
188
|
@@map("prenta_api_keys")
|
|
189
189
|
}
|
|
190
190
|
|
|
@@ -242,7 +242,6 @@ model Document {
|
|
|
242
242
|
contentHash String?
|
|
243
243
|
structuredData Json?
|
|
244
244
|
contentGraph Json?
|
|
245
|
-
siteId String?
|
|
246
245
|
templateId String?
|
|
247
246
|
workflowStage WorkflowStage @default(DRAFT)
|
|
248
247
|
reviewerId String?
|
|
@@ -258,7 +257,6 @@ model Document {
|
|
|
258
257
|
mediaUsages MediaUsage[]
|
|
259
258
|
contentLocks ContentLock[]
|
|
260
259
|
contentIssues ContentIssue[]
|
|
261
|
-
workflowState WorkflowState?
|
|
262
260
|
|
|
263
261
|
@@unique([collection, slug])
|
|
264
262
|
@@index([collection])
|
|
@@ -379,6 +377,7 @@ model ContentLock {
|
|
|
379
377
|
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
380
378
|
user User @relation(fields: [userId], references: [id])
|
|
381
379
|
|
|
380
|
+
@@unique([documentId])
|
|
382
381
|
@@map("prenta_content_locks")
|
|
383
382
|
}
|
|
384
383
|
|
|
@@ -394,6 +393,7 @@ model InAppNotification {
|
|
|
394
393
|
|
|
395
394
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
396
395
|
|
|
396
|
+
@@index([userId])
|
|
397
397
|
@@map("prenta_notifications")
|
|
398
398
|
}
|
|
399
399
|
|
|
@@ -411,33 +411,6 @@ model ContentTemplate {
|
|
|
411
411
|
@@map("prenta_content_templates")
|
|
412
412
|
}
|
|
413
413
|
|
|
414
|
-
model Site {
|
|
415
|
-
id String @id @default(cuid())
|
|
416
|
-
domain String @unique
|
|
417
|
-
name String
|
|
418
|
-
configOverrides Json?
|
|
419
|
-
isDefault Boolean @default(false)
|
|
420
|
-
createdAt DateTime @default(now())
|
|
421
|
-
updatedAt DateTime @updatedAt
|
|
422
|
-
|
|
423
|
-
@@map("prenta_sites")
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
model WorkflowState {
|
|
427
|
-
id String @id @default(cuid())
|
|
428
|
-
documentId String @unique
|
|
429
|
-
currentStep Int @default(0)
|
|
430
|
-
assignedToId String?
|
|
431
|
-
status String @default("pending")
|
|
432
|
-
definition Json
|
|
433
|
-
createdAt DateTime @default(now())
|
|
434
|
-
updatedAt DateTime @updatedAt
|
|
435
|
-
|
|
436
|
-
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
437
|
-
assignedTo User? @relation(fields: [assignedToId], references: [id])
|
|
438
|
-
|
|
439
|
-
@@map("prenta_workflow_states")
|
|
440
|
-
}
|
|
441
414
|
|
|
442
415
|
model Redirect {
|
|
443
416
|
id String @id @default(cuid())
|
|
@@ -676,13 +649,9 @@ model FormSubmission {
|
|
|
676
649
|
deliveries FormDeliveryAttempt[]
|
|
677
650
|
|
|
678
651
|
@@index([formId])
|
|
679
|
-
@@index([status])
|
|
680
|
-
@@index([unread])
|
|
681
|
-
@@index([starred])
|
|
682
|
-
@@index([archived])
|
|
683
|
-
@@index([spamStatus])
|
|
684
652
|
@@index([submittedAt])
|
|
685
653
|
@@index([senderEmail])
|
|
654
|
+
@@index([formId, submittedAt])
|
|
686
655
|
@@map("prenta_form_submissions")
|
|
687
656
|
}
|
|
688
657
|
|
|
@@ -766,18 +735,6 @@ model FormDeliveryAttempt {
|
|
|
766
735
|
@@map("prenta_form_delivery_attempts")
|
|
767
736
|
}
|
|
768
737
|
|
|
769
|
-
model BackupRecord {
|
|
770
|
-
id String @id @default(cuid())
|
|
771
|
-
filename String
|
|
772
|
-
storageKey String
|
|
773
|
-
sizeBytes Int
|
|
774
|
-
type String
|
|
775
|
-
metadata Json?
|
|
776
|
-
createdAt DateTime @default(now())
|
|
777
|
-
|
|
778
|
-
@@map("prenta_backup_records")
|
|
779
|
-
}
|
|
780
|
-
|
|
781
738
|
model WebhookEndpoint {
|
|
782
739
|
id String @id @default(cuid())
|
|
783
740
|
url String
|