convex-cms 0.0.2 → 0.0.3
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/admin-dist/nitro.json +15 -0
- package/admin-dist/public/assets/CmsEmptyState-CRswfTzk.js +5 -0
- package/admin-dist/public/assets/CmsPageHeader-CirpXndm.js +1 -0
- package/admin-dist/public/assets/CmsStatusBadge-CbEUpQu-.js +1 -0
- package/admin-dist/public/assets/CmsToolbar-BI2nZOXp.js +1 -0
- package/admin-dist/public/assets/ContentEntryEditor-CBeCyK_m.js +4 -0
- package/admin-dist/public/assets/ErrorState-BIVaWmom.js +1 -0
- package/admin-dist/public/assets/TaxonomyFilter-ChaY6Y_x.js +1 -0
- package/admin-dist/public/assets/_contentTypeId-DQ8k_Rvw.js +1 -0
- package/admin-dist/public/assets/_entryId-CKU_glsK.js +1 -0
- package/admin-dist/public/assets/alert-BXjTqrwQ.js +1 -0
- package/admin-dist/public/assets/badge-hvUOzpVZ.js +1 -0
- package/admin-dist/public/assets/circle-check-big-CF_pR17r.js +1 -0
- package/admin-dist/public/assets/command-DU82cJlt.js +1 -0
- package/admin-dist/public/assets/content-_LXl3pp7.js +1 -0
- package/admin-dist/public/assets/content-types-KjxaXGxY.js +2 -0
- package/admin-dist/public/assets/globals-CS6BZ0zp.css +1 -0
- package/admin-dist/public/assets/index-DNGIZHL-.js +1 -0
- package/admin-dist/public/assets/label-KNtpL71g.js +1 -0
- package/admin-dist/public/assets/link-2-Bw2aI4V4.js +1 -0
- package/admin-dist/public/assets/list-sYepHjt_.js +1 -0
- package/admin-dist/public/assets/main-CKj5yfEi.js +97 -0
- package/admin-dist/public/assets/media-Bkrkffm7.js +1 -0
- package/admin-dist/public/assets/new._contentTypeId-C3LstjNs.js +1 -0
- package/admin-dist/public/assets/plus-DUn8v_Xf.js +1 -0
- package/admin-dist/public/assets/rotate-ccw-DJEoHcRI.js +1 -0
- package/admin-dist/public/assets/scroll-area-DfIlT0in.js +1 -0
- package/admin-dist/public/assets/search-MuAUDJKR.js +1 -0
- package/admin-dist/public/assets/select-BD29IXCI.js +1 -0
- package/admin-dist/public/assets/settings-DmMyn_6A.js +1 -0
- package/admin-dist/public/assets/switch-h3Rrnl5i.js +1 -0
- package/admin-dist/public/assets/tabs-imc8h-Dp.js +1 -0
- package/admin-dist/public/assets/taxonomies-dAsrT65H.js +1 -0
- package/admin-dist/public/assets/textarea-BTy7nwzR.js +1 -0
- package/admin-dist/public/assets/trash-SAWKZZHv.js +1 -0
- package/admin-dist/public/assets/triangle-alert-E52Vfeuh.js +1 -0
- package/admin-dist/public/assets/useBreadcrumbLabel-BECBMCzM.js +1 -0
- package/admin-dist/public/assets/usePermissions-Basjs9BT.js +1 -0
- package/admin-dist/public/favicon.ico +0 -0
- package/admin-dist/server/_chunks/_libs/@date-fns/tz.mjs +217 -0
- package/admin-dist/server/_chunks/_libs/@floating-ui/core.mjs +719 -0
- package/admin-dist/server/_chunks/_libs/@floating-ui/dom.mjs +622 -0
- package/admin-dist/server/_chunks/_libs/@floating-ui/react-dom.mjs +292 -0
- package/admin-dist/server/_chunks/_libs/@floating-ui/utils.mjs +320 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/number.mjs +6 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/primitive.mjs +11 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-arrow.mjs +23 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-avatar.mjs +119 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-checkbox.mjs +270 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-collection.mjs +69 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs +39 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-context.mjs +137 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-dialog.mjs +325 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-direction.mjs +9 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-dismissable-layer.mjs +210 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-dropdown-menu.mjs +253 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-guards.mjs +29 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-scope.mjs +206 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-id.mjs +14 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-label.mjs +23 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-menu.mjs +812 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-popover.mjs +300 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-popper.mjs +286 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-portal.mjs +16 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-presence.mjs +128 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-primitive.mjs +141 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs +224 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-scroll-area.mjs +721 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-select.mjs +1163 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-separator.mjs +28 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-slot.mjs +601 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-switch.mjs +152 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-tabs.mjs +189 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs +11 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs +69 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs +1 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-escape-keydown.mjs +17 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-is-hydrated.mjs +15 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs +6 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-previous.mjs +14 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-size.mjs +39 -0
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-visually-hidden.mjs +33 -0
- package/admin-dist/server/_chunks/_libs/@tanstack/history.mjs +409 -0
- package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +1711 -0
- package/admin-dist/server/_chunks/_libs/@tanstack/react-store.mjs +56 -0
- package/admin-dist/server/_chunks/_libs/@tanstack/router-core.mjs +4829 -0
- package/admin-dist/server/_chunks/_libs/@tanstack/store.mjs +134 -0
- package/admin-dist/server/_chunks/_libs/react-dom.mjs +10781 -0
- package/admin-dist/server/_chunks/_libs/react.mjs +513 -0
- package/admin-dist/server/_libs/aria-hidden.mjs +122 -0
- package/admin-dist/server/_libs/class-variance-authority.mjs +44 -0
- package/admin-dist/server/_libs/clsx.mjs +16 -0
- package/admin-dist/server/_libs/cmdk.mjs +315 -0
- package/admin-dist/server/_libs/convex.mjs +4841 -0
- package/admin-dist/server/_libs/cookie-es.mjs +58 -0
- package/admin-dist/server/_libs/croner.mjs +1 -0
- package/admin-dist/server/_libs/crossws.mjs +1 -0
- package/admin-dist/server/_libs/date-fns.mjs +1716 -0
- package/admin-dist/server/_libs/detect-node-es.mjs +1 -0
- package/admin-dist/server/_libs/get-nonce.mjs +9 -0
- package/admin-dist/server/_libs/h3-v2.mjs +277 -0
- package/admin-dist/server/_libs/h3.mjs +401 -0
- package/admin-dist/server/_libs/hookable.mjs +1 -0
- package/admin-dist/server/_libs/isbot.mjs +20 -0
- package/admin-dist/server/_libs/lucide-react.mjs +850 -0
- package/admin-dist/server/_libs/ohash.mjs +1 -0
- package/admin-dist/server/_libs/react-day-picker.mjs +2201 -0
- package/admin-dist/server/_libs/react-remove-scroll-bar.mjs +82 -0
- package/admin-dist/server/_libs/react-remove-scroll.mjs +328 -0
- package/admin-dist/server/_libs/react-style-singleton.mjs +69 -0
- package/admin-dist/server/_libs/rou3.mjs +8 -0
- package/admin-dist/server/_libs/seroval-plugins.mjs +58 -0
- package/admin-dist/server/_libs/seroval.mjs +1765 -0
- package/admin-dist/server/_libs/srvx.mjs +719 -0
- package/admin-dist/server/_libs/tailwind-merge.mjs +3010 -0
- package/admin-dist/server/_libs/tiny-invariant.mjs +12 -0
- package/admin-dist/server/_libs/tiny-warning.mjs +5 -0
- package/admin-dist/server/_libs/tslib.mjs +39 -0
- package/admin-dist/server/_libs/ufo.mjs +54 -0
- package/admin-dist/server/_libs/unctx.mjs +1 -0
- package/admin-dist/server/_libs/unstorage.mjs +1 -0
- package/admin-dist/server/_libs/use-callback-ref.mjs +66 -0
- package/admin-dist/server/_libs/use-sidecar.mjs +106 -0
- package/admin-dist/server/_libs/use-sync-external-store.mjs +139 -0
- package/admin-dist/server/_libs/zod.mjs +4223 -0
- package/admin-dist/server/_ssr/CmsEmptyState-DU7-7-mV.mjs +290 -0
- package/admin-dist/server/_ssr/CmsPageHeader-CseW0AHm.mjs +24 -0
- package/admin-dist/server/_ssr/CmsStatusBadge-B_pi4KCp.mjs +127 -0
- package/admin-dist/server/_ssr/CmsToolbar-X75ex6ek.mjs +49 -0
- package/admin-dist/server/_ssr/ContentEntryEditor-CepusRsA.mjs +3720 -0
- package/admin-dist/server/_ssr/ErrorState-cI-bKLez.mjs +89 -0
- package/admin-dist/server/_ssr/TaxonomyFilter-Bwrq0-cz.mjs +188 -0
- package/admin-dist/server/_ssr/_contentTypeId-BqYKEcLr.mjs +379 -0
- package/admin-dist/server/_ssr/_entryId-CRfnqeDf.mjs +161 -0
- package/admin-dist/server/_ssr/_tanstack-start-manifest_v-BwDlABVk.mjs +4 -0
- package/admin-dist/server/_ssr/alert-CVt45UUP.mjs +92 -0
- package/admin-dist/server/_ssr/badge-6BsP37vG.mjs +125 -0
- package/admin-dist/server/_ssr/command-fy8epIKf.mjs +128 -0
- package/admin-dist/server/_ssr/config.server-D7JHDcDv.mjs +117 -0
- package/admin-dist/server/_ssr/content-B5RhL7uW.mjs +532 -0
- package/admin-dist/server/_ssr/content-types-BIOqCQYN.mjs +1166 -0
- package/admin-dist/server/_ssr/index-DHSHDPt1.mjs +193 -0
- package/admin-dist/server/_ssr/index.mjs +1275 -0
- package/admin-dist/server/_ssr/label-C8Dko1j7.mjs +22 -0
- package/admin-dist/server/_ssr/media-CSx3XttC.mjs +1832 -0
- package/admin-dist/server/_ssr/new._contentTypeId-DzanEZQM.mjs +144 -0
- package/admin-dist/server/_ssr/router-DDWcF-kt.mjs +1556 -0
- package/admin-dist/server/_ssr/scroll-area-bjPYwhXN.mjs +59 -0
- package/admin-dist/server/_ssr/select-BUhDDf4T.mjs +142 -0
- package/admin-dist/server/_ssr/settings-DAsxnw2q.mjs +348 -0
- package/admin-dist/server/_ssr/start-HYkvq4Ni.mjs +4 -0
- package/admin-dist/server/_ssr/switch-BgyRtQ1Z.mjs +31 -0
- package/admin-dist/server/_ssr/tabs-DzMdRB1A.mjs +628 -0
- package/admin-dist/server/_ssr/taxonomies-C8j8g5Q5.mjs +915 -0
- package/admin-dist/server/_ssr/textarea-9jNeYJSc.mjs +18 -0
- package/admin-dist/server/_ssr/trash-DYMxwhZB.mjs +291 -0
- package/admin-dist/server/_ssr/useBreadcrumbLabel-FNSAr2Ha.mjs +16 -0
- package/admin-dist/server/_ssr/usePermissions-BJGGahrJ.mjs +68 -0
- package/admin-dist/server/favicon.ico +0 -0
- package/admin-dist/server/index.mjs +627 -0
- package/dist/cli/index.js +0 -0
- package/dist/client/admin-config.d.ts +0 -1
- package/dist/client/admin-config.d.ts.map +1 -1
- package/dist/client/admin-config.js +0 -1
- package/dist/client/admin-config.js.map +1 -1
- package/dist/client/adminApi.d.ts.map +1 -1
- package/dist/client/agentTools.d.ts +1237 -135
- package/dist/client/agentTools.d.ts.map +1 -1
- package/dist/client/agentTools.js +33 -9
- package/dist/client/agentTools.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +9 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/mediaAssets.d.ts +35 -0
- package/dist/component/mediaAssets.d.ts.map +1 -1
- package/dist/component/mediaAssets.js +81 -0
- package/dist/component/mediaAssets.js.map +1 -1
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +2 -1
- package/dist/test.js.map +1 -1
- package/package.json +9 -5
- package/dist/component/auditLog.d.ts +0 -410
- package/dist/component/auditLog.d.ts.map +0 -1
- package/dist/component/auditLog.js +0 -607
- package/dist/component/auditLog.js.map +0 -1
- package/dist/component/types.d.ts +0 -4
- package/dist/component/types.d.ts.map +0 -1
- package/dist/component/types.js +0 -2
- package/dist/component/types.js.map +0 -1
- package/src/cli/commands/admin.ts +0 -104
- package/src/cli/index.ts +0 -21
- package/src/cli/utils/detectConvexUrl.ts +0 -54
- package/src/cli/utils/openBrowser.ts +0 -16
- package/src/client/admin-config.ts +0 -138
- package/src/client/adminApi.ts +0 -942
- package/src/client/agentTools.ts +0 -1311
- package/src/client/argTypes.ts +0 -316
- package/src/client/field-types.ts +0 -187
- package/src/client/index.ts +0 -1301
- package/src/client/queryBuilder.ts +0 -1100
- package/src/client/schema/codegen.ts +0 -500
- package/src/client/schema/defineContentType.ts +0 -501
- package/src/client/schema/index.ts +0 -169
- package/src/client/schema/schemaDrift.ts +0 -574
- package/src/client/schema/typedClient.ts +0 -688
- package/src/client/schema/types.ts +0 -666
- package/src/client/types.ts +0 -723
- package/src/client/workflows.ts +0 -141
- package/src/client/wrapper.ts +0 -4304
- package/src/component/_generated/api.ts +0 -140
- package/src/component/_generated/component.ts +0 -5029
- package/src/component/_generated/dataModel.ts +0 -60
- package/src/component/_generated/server.ts +0 -156
- package/src/component/authorization.ts +0 -647
- package/src/component/authorizationHooks.ts +0 -668
- package/src/component/bulkOperations.ts +0 -687
- package/src/component/contentEntries.ts +0 -1976
- package/src/component/contentEntryMutations.ts +0 -1223
- package/src/component/contentEntryValidation.ts +0 -707
- package/src/component/contentLock.ts +0 -550
- package/src/component/contentTypeMigration.ts +0 -1064
- package/src/component/contentTypeMutations.ts +0 -969
- package/src/component/contentTypes.ts +0 -346
- package/src/component/convex.config.ts +0 -44
- package/src/component/documentTypes.ts +0 -240
- package/src/component/eventEmitter.ts +0 -485
- package/src/component/exportImport.ts +0 -1169
- package/src/component/index.ts +0 -491
- package/src/component/lib/deepReferenceResolver.ts +0 -999
- package/src/component/lib/errors.ts +0 -816
- package/src/component/lib/index.ts +0 -145
- package/src/component/lib/mediaReferenceResolver.ts +0 -495
- package/src/component/lib/metadataExtractor.ts +0 -792
- package/src/component/lib/mutationAuth.ts +0 -199
- package/src/component/lib/queries.ts +0 -79
- package/src/component/lib/ragContentChunker.ts +0 -1371
- package/src/component/lib/referenceResolver.ts +0 -430
- package/src/component/lib/slugGenerator.ts +0 -262
- package/src/component/lib/slugUniqueness.ts +0 -333
- package/src/component/lib/softDelete.ts +0 -44
- package/src/component/localeFallbackChain.ts +0 -673
- package/src/component/localeFields.ts +0 -896
- package/src/component/mediaAssetMutations.ts +0 -725
- package/src/component/mediaAssets.ts +0 -932
- package/src/component/mediaFolderMutations.ts +0 -1046
- package/src/component/mediaUploadMutations.ts +0 -224
- package/src/component/mediaVariantMutations.ts +0 -900
- package/src/component/mediaVariants.ts +0 -793
- package/src/component/ragContentIndexer.ts +0 -1067
- package/src/component/rateLimitHooks.ts +0 -572
- package/src/component/roles.ts +0 -1360
- package/src/component/scheduledPublish.ts +0 -358
- package/src/component/schema.ts +0 -617
- package/src/component/taxonomies.ts +0 -949
- package/src/component/taxonomyMutations.ts +0 -1210
- package/src/component/trash.ts +0 -724
- package/src/component/userContext.ts +0 -898
- package/src/component/validation.ts +0 -1388
- package/src/component/validators.ts +0 -949
- package/src/component/versionMutations.ts +0 -392
- package/src/component/webhookTrigger.ts +0 -1922
- package/src/react/index.ts +0 -898
- package/src/test.ts +0 -1580
|
@@ -1,607 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Audit Log Module
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive audit logging for all CMS operations.
|
|
5
|
-
* Records user, action, timestamp, and before/after states.
|
|
6
|
-
* Provides query functions for audit trail retrieval and filtering.
|
|
7
|
-
*
|
|
8
|
-
* Design Philosophy:
|
|
9
|
-
* - Audit logs are immutable once created (append-only)
|
|
10
|
-
* - Complete before/after snapshots enable diff analysis
|
|
11
|
-
* - Rich filtering supports compliance and security auditing
|
|
12
|
-
* - Optimized for read-heavy audit trail queries
|
|
13
|
-
*
|
|
14
|
-
* Usage:
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // In a mutation handler:
|
|
17
|
-
* await logAuditEntry(ctx, {
|
|
18
|
-
* resourceType: "contentEntry",
|
|
19
|
-
* resourceId: entry._id.toString(),
|
|
20
|
-
* action: "updated",
|
|
21
|
-
* userId: updatedBy,
|
|
22
|
-
* previousState: oldEntry,
|
|
23
|
-
* newState: newEntry,
|
|
24
|
-
* });
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
import { v } from "convex/values";
|
|
28
|
-
import { mutation, query, internalMutation } from "./_generated/server.js";
|
|
29
|
-
// =============================================================================
|
|
30
|
-
// Validators (imported from central validators.ts)
|
|
31
|
-
// =============================================================================
|
|
32
|
-
// Import validators from the central validators module to avoid duplication.
|
|
33
|
-
// The auditLogDoc validator is derived from schema using convex-helpers doc().
|
|
34
|
-
import { auditResourceTypeValidator, auditActionValidator, auditLogDoc as auditLogDocValidator, } from "./validators.js";
|
|
35
|
-
// Re-export for consumers of this module
|
|
36
|
-
export { auditResourceTypeValidator, auditActionValidator, auditLogDocValidator };
|
|
37
|
-
// =============================================================================
|
|
38
|
-
// Internal Helper: Log Audit Entry
|
|
39
|
-
// =============================================================================
|
|
40
|
-
/**
|
|
41
|
-
* Internal helper function to create an audit log entry within mutation handlers.
|
|
42
|
-
*
|
|
43
|
-
* This function inserts an audit log record into the auditLogs table.
|
|
44
|
-
* It's designed to be called from within other mutations to ensure
|
|
45
|
-
* the audit log is part of the same atomic transaction.
|
|
46
|
-
*
|
|
47
|
-
* @param ctx - The mutation context
|
|
48
|
-
* @param params - Audit log parameters
|
|
49
|
-
* @returns The created audit log ID
|
|
50
|
-
*/
|
|
51
|
-
export async function logAuditEntry(ctx, params) {
|
|
52
|
-
const { resourceType, resourceId, action, userId, userDisplayName, previousState, newState, changeSummary, changedFields, ipAddress, userAgent, sessionId, requestId, metadata, contentTypeName, entrySlug, } = params;
|
|
53
|
-
// Auto-generate change summary if not provided for update actions
|
|
54
|
-
let summary = changeSummary;
|
|
55
|
-
if (!summary &&
|
|
56
|
-
action === "updated" &&
|
|
57
|
-
changedFields &&
|
|
58
|
-
changedFields.length > 0) {
|
|
59
|
-
summary = `Updated ${changedFields.length} field${changedFields.length > 1 ? "s" : ""}: ${changedFields.slice(0, 5).join(", ")}${changedFields.length > 5 ? "..." : ""}`;
|
|
60
|
-
}
|
|
61
|
-
const auditLogId = await ctx.db.insert("auditLogs", {
|
|
62
|
-
resourceType,
|
|
63
|
-
resourceId,
|
|
64
|
-
action,
|
|
65
|
-
userId,
|
|
66
|
-
userDisplayName,
|
|
67
|
-
previousState,
|
|
68
|
-
newState,
|
|
69
|
-
changeSummary: summary,
|
|
70
|
-
changedFields,
|
|
71
|
-
ipAddress,
|
|
72
|
-
userAgent,
|
|
73
|
-
sessionId,
|
|
74
|
-
requestId,
|
|
75
|
-
metadata,
|
|
76
|
-
contentTypeName,
|
|
77
|
-
entrySlug,
|
|
78
|
-
});
|
|
79
|
-
return auditLogId;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Helper to detect changed fields between two objects.
|
|
83
|
-
* Useful for automatically populating changedFields in audit logs.
|
|
84
|
-
*/
|
|
85
|
-
export function detectChangedFields(previousState, newState) {
|
|
86
|
-
if (!previousState || !newState) {
|
|
87
|
-
return [];
|
|
88
|
-
}
|
|
89
|
-
const changedFields = [];
|
|
90
|
-
const allKeys = new Set([
|
|
91
|
-
...Object.keys(previousState),
|
|
92
|
-
...Object.keys(newState),
|
|
93
|
-
]);
|
|
94
|
-
for (const key of allKeys) {
|
|
95
|
-
// Skip internal fields
|
|
96
|
-
if (key.startsWith("_"))
|
|
97
|
-
continue;
|
|
98
|
-
const oldValue = previousState[key];
|
|
99
|
-
const newValue = newState[key];
|
|
100
|
-
// Simple comparison (deep comparison for objects)
|
|
101
|
-
if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {
|
|
102
|
-
changedFields.push(key);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return changedFields;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Helper to generate a human-readable change summary.
|
|
109
|
-
*/
|
|
110
|
-
export function generateChangeSummary(action, resourceType, changedFields, metadata) {
|
|
111
|
-
const resourceName = resourceType
|
|
112
|
-
.replace(/([A-Z])/g, " $1")
|
|
113
|
-
.toLowerCase()
|
|
114
|
-
.trim();
|
|
115
|
-
switch (action) {
|
|
116
|
-
case "created":
|
|
117
|
-
return `Created new ${resourceName}`;
|
|
118
|
-
case "updated":
|
|
119
|
-
if (changedFields && changedFields.length > 0) {
|
|
120
|
-
return `Updated ${changedFields.length} field${changedFields.length > 1 ? "s" : ""}: ${changedFields.slice(0, 3).join(", ")}${changedFields.length > 3 ? "..." : ""}`;
|
|
121
|
-
}
|
|
122
|
-
return `Updated ${resourceName}`;
|
|
123
|
-
case "published":
|
|
124
|
-
return `Published ${resourceName}`;
|
|
125
|
-
case "unpublished":
|
|
126
|
-
return `Unpublished ${resourceName} (reverted to draft)`;
|
|
127
|
-
case "deleted":
|
|
128
|
-
return metadata?.hardDelete
|
|
129
|
-
? `Permanently deleted ${resourceName}`
|
|
130
|
-
: `Moved ${resourceName} to trash`;
|
|
131
|
-
case "restored":
|
|
132
|
-
return `Restored ${resourceName} from trash`;
|
|
133
|
-
case "duplicated":
|
|
134
|
-
return `Duplicated ${resourceName}`;
|
|
135
|
-
case "scheduled":
|
|
136
|
-
return `Scheduled ${resourceName} for publication`;
|
|
137
|
-
case "locked":
|
|
138
|
-
return `Locked ${resourceName} for editing`;
|
|
139
|
-
case "unlocked":
|
|
140
|
-
return `Released lock on ${resourceName}`;
|
|
141
|
-
case "rolledBack": {
|
|
142
|
-
const version = metadata?.toVersion;
|
|
143
|
-
return version
|
|
144
|
-
? `Rolled back to version ${version}`
|
|
145
|
-
: `Rolled back to previous version`;
|
|
146
|
-
}
|
|
147
|
-
case "migrated":
|
|
148
|
-
return `Applied migration to ${resourceName}`;
|
|
149
|
-
default:
|
|
150
|
-
return `Performed ${action} on ${resourceName}`;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
// =============================================================================
|
|
154
|
-
// Query Functions
|
|
155
|
-
// =============================================================================
|
|
156
|
-
/**
|
|
157
|
-
* Query to get audit logs for a specific resource.
|
|
158
|
-
*
|
|
159
|
-
* @param resourceType - The resource type
|
|
160
|
-
* @param resourceId - The resource ID
|
|
161
|
-
* @param limit - Maximum number of logs to return (default: 50)
|
|
162
|
-
*
|
|
163
|
-
* @returns Array of audit log entries for the resource, ordered by creation time (newest first)
|
|
164
|
-
*/
|
|
165
|
-
export const getResourceAuditLogs = query({
|
|
166
|
-
args: {
|
|
167
|
-
resourceType: auditResourceTypeValidator,
|
|
168
|
-
resourceId: v.string(),
|
|
169
|
-
limit: v.optional(v.number()),
|
|
170
|
-
},
|
|
171
|
-
returns: v.array(auditLogDocValidator),
|
|
172
|
-
handler: async (ctx, args) => {
|
|
173
|
-
const { resourceType, resourceId, limit = 50 } = args;
|
|
174
|
-
const logs = await ctx.db
|
|
175
|
-
.query("auditLogs")
|
|
176
|
-
.withIndex("by_resource", (q) => q.eq("resourceType", resourceType).eq("resourceId", resourceId))
|
|
177
|
-
.order("desc")
|
|
178
|
-
.take(limit);
|
|
179
|
-
return logs;
|
|
180
|
-
},
|
|
181
|
-
});
|
|
182
|
-
/**
|
|
183
|
-
* Query to get audit logs by user.
|
|
184
|
-
*
|
|
185
|
-
* @param userId - The user ID
|
|
186
|
-
* @param limit - Maximum number of logs to return (default: 50)
|
|
187
|
-
*
|
|
188
|
-
* @returns Array of audit log entries by the user, ordered by creation time (newest first)
|
|
189
|
-
*/
|
|
190
|
-
export const getUserAuditLogs = query({
|
|
191
|
-
args: {
|
|
192
|
-
userId: v.string(),
|
|
193
|
-
limit: v.optional(v.number()),
|
|
194
|
-
},
|
|
195
|
-
returns: v.array(auditLogDocValidator),
|
|
196
|
-
handler: async (ctx, args) => {
|
|
197
|
-
const { userId, limit = 50 } = args;
|
|
198
|
-
const logs = await ctx.db
|
|
199
|
-
.query("auditLogs")
|
|
200
|
-
.withIndex("by_user", (q) => q.eq("userId", userId))
|
|
201
|
-
.order("desc")
|
|
202
|
-
.take(limit);
|
|
203
|
-
return logs;
|
|
204
|
-
},
|
|
205
|
-
});
|
|
206
|
-
/**
|
|
207
|
-
* Query to list audit logs with filtering and pagination.
|
|
208
|
-
*
|
|
209
|
-
* @param resourceType - Filter by resource type
|
|
210
|
-
* @param action - Filter by action
|
|
211
|
-
* @param userId - Filter by user ID
|
|
212
|
-
* @param contentTypeName - Filter by content type name (for content entries)
|
|
213
|
-
* @param startDate - Filter logs created after this timestamp
|
|
214
|
-
* @param endDate - Filter logs created before this timestamp
|
|
215
|
-
* @param limit - Maximum number of logs to return (default: 50)
|
|
216
|
-
* @param cursor - Cursor for pagination
|
|
217
|
-
*
|
|
218
|
-
* @returns Paginated audit log entries
|
|
219
|
-
*/
|
|
220
|
-
export const listAuditLogs = query({
|
|
221
|
-
args: {
|
|
222
|
-
resourceType: v.optional(auditResourceTypeValidator),
|
|
223
|
-
action: v.optional(auditActionValidator),
|
|
224
|
-
userId: v.optional(v.string()),
|
|
225
|
-
contentTypeName: v.optional(v.string()),
|
|
226
|
-
startDate: v.optional(v.number()),
|
|
227
|
-
endDate: v.optional(v.number()),
|
|
228
|
-
limit: v.optional(v.number()),
|
|
229
|
-
cursor: v.optional(v.string()),
|
|
230
|
-
},
|
|
231
|
-
returns: v.object({
|
|
232
|
-
logs: v.array(auditLogDocValidator),
|
|
233
|
-
hasMore: v.boolean(),
|
|
234
|
-
nextCursor: v.optional(v.string()),
|
|
235
|
-
}),
|
|
236
|
-
handler: async (ctx, args) => {
|
|
237
|
-
const { resourceType, action, userId, contentTypeName, startDate, endDate, limit = 50, } = args;
|
|
238
|
-
// Start with the most specific index based on filters
|
|
239
|
-
let queryBuilder;
|
|
240
|
-
if (userId && action) {
|
|
241
|
-
queryBuilder = ctx.db
|
|
242
|
-
.query("auditLogs")
|
|
243
|
-
.withIndex("by_user_and_action", (q) => q.eq("userId", userId).eq("action", action));
|
|
244
|
-
}
|
|
245
|
-
else if (resourceType && action) {
|
|
246
|
-
queryBuilder = ctx.db
|
|
247
|
-
.query("auditLogs")
|
|
248
|
-
.withIndex("by_resource_type_and_action", (q) => q.eq("resourceType", resourceType).eq("action", action));
|
|
249
|
-
}
|
|
250
|
-
else if (userId) {
|
|
251
|
-
queryBuilder = ctx.db
|
|
252
|
-
.query("auditLogs")
|
|
253
|
-
.withIndex("by_user", (q) => q.eq("userId", userId));
|
|
254
|
-
}
|
|
255
|
-
else if (contentTypeName) {
|
|
256
|
-
queryBuilder = ctx.db
|
|
257
|
-
.query("auditLogs")
|
|
258
|
-
.withIndex("by_content_type", (q) => q.eq("contentTypeName", contentTypeName));
|
|
259
|
-
}
|
|
260
|
-
else if (action) {
|
|
261
|
-
queryBuilder = ctx.db
|
|
262
|
-
.query("auditLogs")
|
|
263
|
-
.withIndex("by_action", (q) => q.eq("action", action));
|
|
264
|
-
}
|
|
265
|
-
else if (resourceType) {
|
|
266
|
-
queryBuilder = ctx.db
|
|
267
|
-
.query("auditLogs")
|
|
268
|
-
.withIndex("by_resource_type", (q) => q.eq("resourceType", resourceType));
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
queryBuilder = ctx.db.query("auditLogs");
|
|
272
|
-
}
|
|
273
|
-
// Fetch more than needed to apply additional filters
|
|
274
|
-
let logs = await queryBuilder.order("desc").take(limit * 3);
|
|
275
|
-
// Apply time-based filters in memory
|
|
276
|
-
if (startDate !== undefined) {
|
|
277
|
-
logs = logs.filter((log) => log._creationTime >= startDate);
|
|
278
|
-
}
|
|
279
|
-
if (endDate !== undefined) {
|
|
280
|
-
logs = logs.filter((log) => log._creationTime <= endDate);
|
|
281
|
-
}
|
|
282
|
-
// Apply any remaining filters not covered by the index
|
|
283
|
-
if (resourceType && !action) {
|
|
284
|
-
logs = logs.filter((log) => log.resourceType === resourceType);
|
|
285
|
-
}
|
|
286
|
-
// Limit results
|
|
287
|
-
const limitedLogs = logs.slice(0, limit);
|
|
288
|
-
const hasMore = logs.length > limit;
|
|
289
|
-
const nextCursor = hasMore && limitedLogs.length > 0
|
|
290
|
-
? limitedLogs[limitedLogs.length - 1]._id
|
|
291
|
-
: undefined;
|
|
292
|
-
return {
|
|
293
|
-
logs: limitedLogs,
|
|
294
|
-
hasMore,
|
|
295
|
-
nextCursor,
|
|
296
|
-
};
|
|
297
|
-
},
|
|
298
|
-
});
|
|
299
|
-
/**
|
|
300
|
-
* Query to get a single audit log entry by ID.
|
|
301
|
-
*
|
|
302
|
-
* @param id - The audit log entry ID
|
|
303
|
-
*
|
|
304
|
-
* @returns The audit log entry or null if not found
|
|
305
|
-
*/
|
|
306
|
-
export const getAuditLog = query({
|
|
307
|
-
args: {
|
|
308
|
-
id: v.id("auditLogs"),
|
|
309
|
-
},
|
|
310
|
-
returns: v.union(auditLogDocValidator, v.null()),
|
|
311
|
-
handler: async (ctx, args) => {
|
|
312
|
-
const log = await ctx.db.get(args.id);
|
|
313
|
-
return log;
|
|
314
|
-
},
|
|
315
|
-
});
|
|
316
|
-
/**
|
|
317
|
-
* Query to get audit log statistics.
|
|
318
|
-
*
|
|
319
|
-
* @param resourceType - Filter by resource type
|
|
320
|
-
* @param startDate - Filter logs created after this timestamp
|
|
321
|
-
* @param endDate - Filter logs created before this timestamp
|
|
322
|
-
*
|
|
323
|
-
* @returns Statistics about audit logs
|
|
324
|
-
*/
|
|
325
|
-
export const getAuditLogStats = query({
|
|
326
|
-
args: {
|
|
327
|
-
resourceType: v.optional(auditResourceTypeValidator),
|
|
328
|
-
startDate: v.optional(v.number()),
|
|
329
|
-
endDate: v.optional(v.number()),
|
|
330
|
-
},
|
|
331
|
-
returns: v.object({
|
|
332
|
-
totalCount: v.number(),
|
|
333
|
-
actionCounts: v.any(),
|
|
334
|
-
topUsers: v.array(v.object({
|
|
335
|
-
userId: v.string(),
|
|
336
|
-
count: v.number(),
|
|
337
|
-
})),
|
|
338
|
-
}),
|
|
339
|
-
handler: async (ctx, args) => {
|
|
340
|
-
const { resourceType, startDate, endDate } = args;
|
|
341
|
-
let queryBuilder;
|
|
342
|
-
if (resourceType) {
|
|
343
|
-
queryBuilder = ctx.db
|
|
344
|
-
.query("auditLogs")
|
|
345
|
-
.withIndex("by_resource_type", (q) => q.eq("resourceType", resourceType));
|
|
346
|
-
}
|
|
347
|
-
else {
|
|
348
|
-
queryBuilder = ctx.db.query("auditLogs");
|
|
349
|
-
}
|
|
350
|
-
let logs = await queryBuilder.collect();
|
|
351
|
-
// Apply time-based filters
|
|
352
|
-
if (startDate !== undefined) {
|
|
353
|
-
logs = logs.filter((log) => log._creationTime >= startDate);
|
|
354
|
-
}
|
|
355
|
-
if (endDate !== undefined) {
|
|
356
|
-
logs = logs.filter((log) => log._creationTime <= endDate);
|
|
357
|
-
}
|
|
358
|
-
// Calculate action counts
|
|
359
|
-
const actionCounts = {};
|
|
360
|
-
for (const log of logs) {
|
|
361
|
-
actionCounts[log.action] = (actionCounts[log.action] || 0) + 1;
|
|
362
|
-
}
|
|
363
|
-
// Calculate top users
|
|
364
|
-
const userCounts = {};
|
|
365
|
-
for (const log of logs) {
|
|
366
|
-
if (log.userId) {
|
|
367
|
-
userCounts[log.userId] = (userCounts[log.userId] || 0) + 1;
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
const topUsers = Object.entries(userCounts)
|
|
371
|
-
.map(([userId, count]) => ({ userId, count }))
|
|
372
|
-
.sort((a, b) => b.count - a.count)
|
|
373
|
-
.slice(0, 10);
|
|
374
|
-
return {
|
|
375
|
-
totalCount: logs.length,
|
|
376
|
-
actionCounts,
|
|
377
|
-
topUsers,
|
|
378
|
-
};
|
|
379
|
-
},
|
|
380
|
-
});
|
|
381
|
-
/**
|
|
382
|
-
* Query to compare two versions of a resource using audit logs.
|
|
383
|
-
* Returns the diff between previousState and newState for an update action.
|
|
384
|
-
*
|
|
385
|
-
* @param id - The audit log entry ID (should be an "updated" action)
|
|
386
|
-
*
|
|
387
|
-
* @returns The diff between states
|
|
388
|
-
*/
|
|
389
|
-
export const getAuditLogDiff = query({
|
|
390
|
-
args: {
|
|
391
|
-
id: v.id("auditLogs"),
|
|
392
|
-
},
|
|
393
|
-
returns: v.object({
|
|
394
|
-
hasChanges: v.boolean(),
|
|
395
|
-
changedFields: v.array(v.string()),
|
|
396
|
-
fieldDiffs: v.array(v.object({
|
|
397
|
-
field: v.string(),
|
|
398
|
-
previousValue: v.optional(v.any()),
|
|
399
|
-
newValue: v.optional(v.any()),
|
|
400
|
-
})),
|
|
401
|
-
}),
|
|
402
|
-
handler: async (ctx, args) => {
|
|
403
|
-
const log = await ctx.db.get(args.id);
|
|
404
|
-
if (!log) {
|
|
405
|
-
return {
|
|
406
|
-
hasChanges: false,
|
|
407
|
-
changedFields: [],
|
|
408
|
-
fieldDiffs: [],
|
|
409
|
-
};
|
|
410
|
-
}
|
|
411
|
-
const { previousState, newState, changedFields } = log;
|
|
412
|
-
// If changedFields is already stored, use it
|
|
413
|
-
if (changedFields && changedFields.length > 0) {
|
|
414
|
-
const fieldDiffs = changedFields.map((field) => ({
|
|
415
|
-
field,
|
|
416
|
-
previousValue: previousState
|
|
417
|
-
? previousState[field]
|
|
418
|
-
: undefined,
|
|
419
|
-
newValue: newState
|
|
420
|
-
? newState[field]
|
|
421
|
-
: undefined,
|
|
422
|
-
}));
|
|
423
|
-
return {
|
|
424
|
-
hasChanges: true,
|
|
425
|
-
changedFields,
|
|
426
|
-
fieldDiffs,
|
|
427
|
-
};
|
|
428
|
-
}
|
|
429
|
-
// Otherwise, compute the diff
|
|
430
|
-
const detectedChanges = detectChangedFields(previousState, newState);
|
|
431
|
-
const fieldDiffs = detectedChanges.map((field) => ({
|
|
432
|
-
field,
|
|
433
|
-
previousValue: previousState
|
|
434
|
-
? previousState[field]
|
|
435
|
-
: undefined,
|
|
436
|
-
newValue: newState
|
|
437
|
-
? newState[field]
|
|
438
|
-
: undefined,
|
|
439
|
-
}));
|
|
440
|
-
return {
|
|
441
|
-
hasChanges: detectedChanges.length > 0,
|
|
442
|
-
changedFields: detectedChanges,
|
|
443
|
-
fieldDiffs,
|
|
444
|
-
};
|
|
445
|
-
},
|
|
446
|
-
});
|
|
447
|
-
// =============================================================================
|
|
448
|
-
// Mutation Functions
|
|
449
|
-
// =============================================================================
|
|
450
|
-
/**
|
|
451
|
-
* Internal mutation to create an audit log entry.
|
|
452
|
-
* Used by scheduled functions and internal operations.
|
|
453
|
-
*/
|
|
454
|
-
export const internalLogAuditEntry = internalMutation({
|
|
455
|
-
args: {
|
|
456
|
-
resourceType: auditResourceTypeValidator,
|
|
457
|
-
resourceId: v.string(),
|
|
458
|
-
action: auditActionValidator,
|
|
459
|
-
userId: v.optional(v.string()),
|
|
460
|
-
userDisplayName: v.optional(v.string()),
|
|
461
|
-
previousState: v.optional(v.any()),
|
|
462
|
-
newState: v.optional(v.any()),
|
|
463
|
-
changeSummary: v.optional(v.string()),
|
|
464
|
-
changedFields: v.optional(v.array(v.string())),
|
|
465
|
-
ipAddress: v.optional(v.string()),
|
|
466
|
-
userAgent: v.optional(v.string()),
|
|
467
|
-
sessionId: v.optional(v.string()),
|
|
468
|
-
requestId: v.optional(v.string()),
|
|
469
|
-
metadata: v.optional(v.any()),
|
|
470
|
-
contentTypeName: v.optional(v.string()),
|
|
471
|
-
entrySlug: v.optional(v.string()),
|
|
472
|
-
},
|
|
473
|
-
returns: v.id("auditLogs"),
|
|
474
|
-
handler: async (ctx, args) => {
|
|
475
|
-
const auditLogId = await ctx.db.insert("auditLogs", {
|
|
476
|
-
resourceType: args.resourceType,
|
|
477
|
-
resourceId: args.resourceId,
|
|
478
|
-
action: args.action,
|
|
479
|
-
userId: args.userId,
|
|
480
|
-
userDisplayName: args.userDisplayName,
|
|
481
|
-
previousState: args.previousState,
|
|
482
|
-
newState: args.newState,
|
|
483
|
-
changeSummary: args.changeSummary,
|
|
484
|
-
changedFields: args.changedFields,
|
|
485
|
-
ipAddress: args.ipAddress,
|
|
486
|
-
userAgent: args.userAgent,
|
|
487
|
-
sessionId: args.sessionId,
|
|
488
|
-
requestId: args.requestId,
|
|
489
|
-
metadata: args.metadata,
|
|
490
|
-
contentTypeName: args.contentTypeName,
|
|
491
|
-
entrySlug: args.entrySlug,
|
|
492
|
-
});
|
|
493
|
-
return auditLogId;
|
|
494
|
-
},
|
|
495
|
-
});
|
|
496
|
-
/**
|
|
497
|
-
* Mutation to clean up old audit logs.
|
|
498
|
-
*
|
|
499
|
-
* Note: This is typically NOT recommended for audit logs as they serve
|
|
500
|
-
* compliance purposes. Only use this if you have a specific retention policy.
|
|
501
|
-
*
|
|
502
|
-
* @param retentionDays - Number of days to retain audit logs (default: 365)
|
|
503
|
-
*
|
|
504
|
-
* @returns Count of audit logs deleted
|
|
505
|
-
*/
|
|
506
|
-
export const cleanupOldAuditLogs = mutation({
|
|
507
|
-
args: {
|
|
508
|
-
retentionDays: v.optional(v.number()),
|
|
509
|
-
},
|
|
510
|
-
returns: v.object({
|
|
511
|
-
deletedCount: v.number(),
|
|
512
|
-
}),
|
|
513
|
-
handler: async (ctx, args) => {
|
|
514
|
-
const { retentionDays = 365 } = args;
|
|
515
|
-
const cutoffTime = Date.now() - retentionDays * 24 * 60 * 60 * 1000;
|
|
516
|
-
let deletedCount = 0;
|
|
517
|
-
// Get old audit logs
|
|
518
|
-
const oldLogs = await ctx.db
|
|
519
|
-
.query("auditLogs")
|
|
520
|
-
.filter((q) => q.lt(q.field("_creationTime"), cutoffTime))
|
|
521
|
-
.take(1000); // Batch limit for safety
|
|
522
|
-
for (const log of oldLogs) {
|
|
523
|
-
await ctx.db.delete(log._id);
|
|
524
|
-
deletedCount++;
|
|
525
|
-
}
|
|
526
|
-
return { deletedCount };
|
|
527
|
-
},
|
|
528
|
-
});
|
|
529
|
-
// =============================================================================
|
|
530
|
-
// Convenience Functions for Common Audit Scenarios
|
|
531
|
-
// =============================================================================
|
|
532
|
-
/**
|
|
533
|
-
* Helper to create an audit log for content entry operations.
|
|
534
|
-
*/
|
|
535
|
-
export async function logContentEntryAudit(ctx, params) {
|
|
536
|
-
const { entryId, action, previousState, newState, contentTypeName, entrySlug, changedFields, ...rest } = params;
|
|
537
|
-
// Auto-detect changed fields if not provided
|
|
538
|
-
const detectedChanges = changedFields ??
|
|
539
|
-
detectChangedFields(previousState, newState);
|
|
540
|
-
return logAuditEntry(ctx, {
|
|
541
|
-
resourceType: "contentEntry",
|
|
542
|
-
resourceId: entryId,
|
|
543
|
-
action,
|
|
544
|
-
previousState,
|
|
545
|
-
newState,
|
|
546
|
-
contentTypeName,
|
|
547
|
-
entrySlug,
|
|
548
|
-
changedFields: detectedChanges.length > 0 ? detectedChanges : undefined,
|
|
549
|
-
changeSummary: generateChangeSummary(action, "contentEntry", detectedChanges, rest.metadata),
|
|
550
|
-
...rest,
|
|
551
|
-
});
|
|
552
|
-
}
|
|
553
|
-
/**
|
|
554
|
-
* Helper to create an audit log for content type operations.
|
|
555
|
-
*/
|
|
556
|
-
export async function logContentTypeAudit(ctx, params) {
|
|
557
|
-
const { contentTypeId, action, previousState, newState, changedFields, ...rest } = params;
|
|
558
|
-
const detectedChanges = changedFields ??
|
|
559
|
-
detectChangedFields(previousState, newState);
|
|
560
|
-
return logAuditEntry(ctx, {
|
|
561
|
-
resourceType: "contentType",
|
|
562
|
-
resourceId: contentTypeId,
|
|
563
|
-
action,
|
|
564
|
-
previousState,
|
|
565
|
-
newState,
|
|
566
|
-
changedFields: detectedChanges.length > 0 ? detectedChanges : undefined,
|
|
567
|
-
changeSummary: generateChangeSummary(action, "contentType", detectedChanges, rest.metadata),
|
|
568
|
-
...rest,
|
|
569
|
-
});
|
|
570
|
-
}
|
|
571
|
-
/**
|
|
572
|
-
* Helper to create an audit log for media asset operations.
|
|
573
|
-
*/
|
|
574
|
-
export async function logMediaAssetAudit(ctx, params) {
|
|
575
|
-
const { assetId, action, previousState, newState, changedFields, ...rest } = params;
|
|
576
|
-
const detectedChanges = changedFields ??
|
|
577
|
-
detectChangedFields(previousState, newState);
|
|
578
|
-
return logAuditEntry(ctx, {
|
|
579
|
-
resourceType: "mediaAsset",
|
|
580
|
-
resourceId: assetId,
|
|
581
|
-
action,
|
|
582
|
-
previousState,
|
|
583
|
-
newState,
|
|
584
|
-
changedFields: detectedChanges.length > 0 ? detectedChanges : undefined,
|
|
585
|
-
changeSummary: generateChangeSummary(action, "mediaAsset", detectedChanges, rest.metadata),
|
|
586
|
-
...rest,
|
|
587
|
-
});
|
|
588
|
-
}
|
|
589
|
-
/**
|
|
590
|
-
* Helper to create an audit log for media folder operations.
|
|
591
|
-
*/
|
|
592
|
-
export async function logMediaFolderAudit(ctx, params) {
|
|
593
|
-
const { folderId, action, previousState, newState, changedFields, ...rest } = params;
|
|
594
|
-
const detectedChanges = changedFields ??
|
|
595
|
-
detectChangedFields(previousState, newState);
|
|
596
|
-
return logAuditEntry(ctx, {
|
|
597
|
-
resourceType: "mediaFolder",
|
|
598
|
-
resourceId: folderId,
|
|
599
|
-
action,
|
|
600
|
-
previousState,
|
|
601
|
-
newState,
|
|
602
|
-
changedFields: detectedChanges.length > 0 ? detectedChanges : undefined,
|
|
603
|
-
changeSummary: generateChangeSummary(action, "mediaFolder", detectedChanges, rest.metadata),
|
|
604
|
-
...rest,
|
|
605
|
-
});
|
|
606
|
-
}
|
|
607
|
-
//# sourceMappingURL=auditLog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auditLog.js","sourceRoot":"","sources":["../../src/component/auditLog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/component/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
package/dist/component/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/component/types.ts"],"names":[],"mappings":""}
|