sonamu 0.9.3 → 0.9.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/dist/ai/providers/rtzr/utils.js +2 -2
- package/dist/api/config.d.ts +0 -8
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +1 -1
- package/dist/api/sonamu.d.ts +0 -1
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +2 -41
- package/dist/auth/audit-log/builders.d.ts +216 -0
- package/dist/auth/audit-log/builders.d.ts.map +1 -0
- package/dist/auth/audit-log/builders.js +307 -0
- package/dist/auth/audit-log/events.d.ts +143 -0
- package/dist/auth/audit-log/events.d.ts.map +1 -0
- package/dist/auth/audit-log/events.js +74 -0
- package/dist/auth/audit-log/plugin.d.ts +11 -0
- package/dist/auth/audit-log/plugin.d.ts.map +1 -0
- package/dist/auth/audit-log/plugin.js +427 -0
- package/dist/auth/audit-log-ingestor.d.ts +3 -3
- package/dist/auth/audit-log-ingestor.d.ts.map +1 -1
- package/dist/auth/audit-log-ingestor.js +44 -50
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +4 -4
- package/dist/auth/plugins/entity-definitions/admin.d.ts +1 -1
- package/dist/auth/plugins/entity-definitions/admin.js +4 -4
- package/dist/auth/plugins/entity-definitions/audit-log.d.ts +2 -2
- package/dist/auth/plugins/entity-definitions/audit-log.js +3 -3
- package/dist/auth/plugins/wrappers/admin.d.ts +2 -2
- package/dist/auth/plugins/wrappers/sso.d.ts +1 -1
- package/dist/bin/fixture.d.ts.map +1 -1
- package/dist/bin/fixture.js +111 -1
- package/dist/database/_batch_update.d.ts +1 -1
- package/dist/database/_batch_update.js +2 -2
- package/dist/database/upsert-builder.js +4 -4
- package/dist/dict/sonamu-dictionary.js +2 -2
- package/dist/entity/entity-manager.d.ts +2 -2
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +14 -4
- package/dist/index.js +4 -3
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +2 -3
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +2 -9
- package/dist/template/implementations/entry-server.template.js +3 -2
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +2 -1
- package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
- package/dist/template/implementations/generated_sso.template.js +2 -1
- package/dist/template/implementations/queries.template.d.ts.map +1 -1
- package/dist/template/implementations/queries.template.js +3 -1
- package/dist/template/implementations/sd.template.js +3 -2
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/services.template.js +44 -7
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +2 -2
- package/dist/testing/data-explorer.d.ts.map +1 -1
- package/dist/testing/data-explorer.js +5 -3
- package/dist/types/types.d.ts +14 -14
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +3 -2
- package/dist/ui-web/assets/index-D4rYm-Xz.css +1 -0
- package/dist/ui-web/assets/{index-DrTfl0Ts.js → index-DzZ7vBk4.js} +47 -47
- package/dist/ui-web/index.html +2 -2
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +4 -4
- package/package.json +4 -5
- package/src/ai/providers/rtzr/utils.ts +1 -1
- package/src/api/config.ts +0 -8
- package/src/api/sonamu.ts +1 -51
- package/src/auth/audit-log/builders.ts +791 -0
- package/src/auth/audit-log/events.ts +149 -0
- package/src/auth/audit-log/plugin.ts +913 -0
- package/src/auth/audit-log-ingestor.ts +3 -4
- package/src/auth/index.ts +2 -0
- package/src/auth/plugins/entity-definitions/admin.ts +3 -3
- package/src/auth/plugins/entity-definitions/audit-log.ts +2 -2
- package/src/bin/fixture.ts +143 -0
- package/src/database/_batch_update.ts +1 -1
- package/src/database/upsert-builder.ts +3 -3
- package/src/dict/sonamu-dictionary.ts +1 -1
- package/src/entity/entity-manager.ts +10 -3
- package/src/migration/code-generation.ts +1 -6
- package/src/shared/app.shared.ts.txt +60 -6
- package/src/shared/web.shared.ts.txt +60 -5
- package/src/syncer/syncer.ts +1 -11
- package/src/template/implementations/entry-server.template.ts +1 -1
- package/src/template/implementations/generated.template.ts +1 -0
- package/src/template/implementations/generated_sso.template.ts +1 -0
- package/src/template/implementations/queries.template.ts +10 -1
- package/src/template/implementations/sd.template.ts +1 -1
- package/src/template/implementations/services.template.ts +62 -6
- package/src/template/zod-converter.ts +2 -1
- package/src/testing/data-explorer.ts +3 -2
- package/src/ui/api.ts +10 -1
- package/src/utils/fs-utils.ts +6 -4
- package/dist/auth/audit-log-proxy-types.d.ts +0 -23
- package/dist/auth/audit-log-proxy-types.d.ts.map +0 -1
- package/dist/auth/audit-log-proxy-types.js +0 -1
- package/dist/ui-web/assets/index-Dr8pRJC_.css +0 -1
- package/src/auth/audit-log-proxy-types.ts +0 -23
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* sonamuAuditLog 플러그인이 audit-log-ingestor로 전달하는 이벤트 body 타입.
|
|
3
|
+
*/
|
|
4
|
+
export type AuditLogEvent = {
|
|
5
|
+
eventType: string;
|
|
6
|
+
eventData: Record<string, unknown>;
|
|
7
|
+
eventKey: string;
|
|
8
|
+
eventDisplayName?: string;
|
|
9
|
+
ipAddress?: string;
|
|
10
|
+
city?: string;
|
|
11
|
+
country?: string;
|
|
12
|
+
countryCode?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const EVENT_TYPES: {
|
|
15
|
+
readonly USER_CREATED: "user_created";
|
|
16
|
+
readonly USER_SIGNED_IN: "user_signed_in";
|
|
17
|
+
readonly USER_SIGNED_OUT: "user_signed_out";
|
|
18
|
+
readonly USER_SIGN_IN_FAILED: "user_sign_in_failed";
|
|
19
|
+
readonly PASSWORD_RESET_REQUESTED: "password_reset_requested";
|
|
20
|
+
readonly PASSWORD_RESET_COMPLETED: "password_reset_completed";
|
|
21
|
+
readonly PASSWORD_CHANGED: "password_changed";
|
|
22
|
+
readonly EMAIL_VERIFICATION_SENT: "email_verification_sent";
|
|
23
|
+
readonly EMAIL_VERIFIED: "email_verified";
|
|
24
|
+
readonly PROFILE_UPDATED: "profile_updated";
|
|
25
|
+
readonly PROFILE_IMAGE_UPDATED: "profile_image_updated";
|
|
26
|
+
readonly SESSION_CREATED: "session_created";
|
|
27
|
+
readonly SESSION_REVOKED: "session_revoked";
|
|
28
|
+
readonly ALL_SESSIONS_REVOKED: "all_sessions_revoked";
|
|
29
|
+
readonly ACCOUNT_LINKED: "account_linked";
|
|
30
|
+
readonly ACCOUNT_UNLINKED: "account_unlinked";
|
|
31
|
+
readonly USER_BANNED: "user_banned";
|
|
32
|
+
readonly USER_UNBANNED: "user_unbanned";
|
|
33
|
+
readonly USER_DELETED: "user_deleted";
|
|
34
|
+
readonly USER_IMPERSONATED: "user_impersonated";
|
|
35
|
+
readonly USER_IMPERSONATED_STOPPED: "user_impersonated_stopped";
|
|
36
|
+
};
|
|
37
|
+
export declare const ORGANIZATION_EVENT_TYPES: {
|
|
38
|
+
readonly ORGANIZATION_CREATED: "organization_created";
|
|
39
|
+
readonly ORGANIZATION_UPDATED: "organization_updated";
|
|
40
|
+
readonly ORGANIZATION_MEMBER_ADDED: "organization_member_added";
|
|
41
|
+
readonly ORGANIZATION_MEMBER_REMOVED: "organization_member_removed";
|
|
42
|
+
readonly ORGANIZATION_MEMBER_ROLE_UPDATED: "organization_member_role_updated";
|
|
43
|
+
readonly ORGANIZATION_MEMBER_INVITED: "organization_member_invited";
|
|
44
|
+
readonly ORGANIZATION_MEMBER_INVITE_CANCELED: "organization_member_invite_canceled";
|
|
45
|
+
readonly ORGANIZATION_MEMBER_INVITE_ACCEPTED: "organization_member_invite_accepted";
|
|
46
|
+
readonly ORGANIZATION_MEMBER_INVITE_REJECTED: "organization_member_invite_rejected";
|
|
47
|
+
readonly ORGANIZATION_TEAM_CREATED: "organization_team_created";
|
|
48
|
+
readonly ORGANIZATION_TEAM_UPDATED: "organization_team_updated";
|
|
49
|
+
readonly ORGANIZATION_TEAM_DELETED: "organization_team_deleted";
|
|
50
|
+
readonly ORGANIZATION_TEAM_MEMBER_ADDED: "organization_team_member_added";
|
|
51
|
+
readonly ORGANIZATION_TEAM_MEMBER_REMOVED: "organization_team_member_removed";
|
|
52
|
+
};
|
|
53
|
+
export declare const ROUTES: {
|
|
54
|
+
readonly SIGN_IN: "/sign-in";
|
|
55
|
+
readonly SIGN_IN_EMAIL: "/sign-in/email";
|
|
56
|
+
readonly SIGN_IN_EMAIL_OTP: "/sign-in/email-otp";
|
|
57
|
+
readonly SIGN_IN_SOCIAL: "/sign-in/social";
|
|
58
|
+
readonly SIGN_IN_SOCIAL_CALLBACK: "/callback/:id";
|
|
59
|
+
readonly SIGN_IN_OAUTH_CALLBACK: "/oauth2/callback/:id";
|
|
60
|
+
readonly SIGN_UP: "/sign-up";
|
|
61
|
+
readonly SIGN_UP_EMAIL: "/sign-up/email";
|
|
62
|
+
readonly SIGN_OUT: "/sign-out";
|
|
63
|
+
readonly SEND_VERIFICATION_EMAIL: "/send-verification-email";
|
|
64
|
+
readonly UPDATE_USER: "/update-user";
|
|
65
|
+
readonly CHANGE_EMAIL: "/change-email";
|
|
66
|
+
readonly VERIFY_EMAIL: "/verify-email";
|
|
67
|
+
readonly CHANGE_PASSWORD: "/change-password";
|
|
68
|
+
readonly SET_PASSWORD: "/set-password";
|
|
69
|
+
readonly RESET_PASSWORD: "/reset-password";
|
|
70
|
+
readonly REQUEST_PASSWORD_RESET: "/request-password-reset";
|
|
71
|
+
readonly REVOKE_ALL_SESSIONS: "/revoke-sessions";
|
|
72
|
+
readonly DASH_ROUTE: "/dash";
|
|
73
|
+
readonly DASH_UPDATE_USER: "/dash/update-user";
|
|
74
|
+
readonly DASH_REVOKE_SESSIONS_ALL: "/dash/sessions/revoke-all";
|
|
75
|
+
readonly DASH_BAN_USER: "/dash/ban-user";
|
|
76
|
+
readonly DASH_UNBAN_USER: "/dash/unban-user";
|
|
77
|
+
readonly ADMIN_ROUTE: "/admin";
|
|
78
|
+
readonly ADMIN_REVOKE_USER_SESSIONS: "/admin/revoke-user-sessions";
|
|
79
|
+
readonly ADMIN_SET_PASSWORD: "/admin/set-user-password";
|
|
80
|
+
readonly ADMIN_BAN_USER: "/admin/ban-user";
|
|
81
|
+
readonly ADMIN_UNBAN_USER: "/admin/unban-user";
|
|
82
|
+
};
|
|
83
|
+
export type BuilderTrigger = {
|
|
84
|
+
triggeredBy: string;
|
|
85
|
+
triggerContext: string;
|
|
86
|
+
};
|
|
87
|
+
export type BuilderLocation = {
|
|
88
|
+
ipAddress?: string;
|
|
89
|
+
city?: string;
|
|
90
|
+
country?: string;
|
|
91
|
+
countryCode?: string;
|
|
92
|
+
};
|
|
93
|
+
export type UserSnapshot = {
|
|
94
|
+
id: string;
|
|
95
|
+
name?: string;
|
|
96
|
+
email?: string;
|
|
97
|
+
banned?: boolean;
|
|
98
|
+
banReason?: string | null;
|
|
99
|
+
banExpires?: Date | null;
|
|
100
|
+
};
|
|
101
|
+
export type SessionSnapshot = {
|
|
102
|
+
id: string;
|
|
103
|
+
userId: string;
|
|
104
|
+
loginMethod?: string | null;
|
|
105
|
+
userAgent?: string | null;
|
|
106
|
+
impersonatedBy?: string | null;
|
|
107
|
+
};
|
|
108
|
+
export type AccountSnapshot = {
|
|
109
|
+
id: string;
|
|
110
|
+
userId: string;
|
|
111
|
+
providerId: string;
|
|
112
|
+
};
|
|
113
|
+
export type VerificationSnapshot = {
|
|
114
|
+
id: string;
|
|
115
|
+
value: string;
|
|
116
|
+
};
|
|
117
|
+
export type OrganizationSnapshot = {
|
|
118
|
+
id: string;
|
|
119
|
+
slug?: string;
|
|
120
|
+
name?: string;
|
|
121
|
+
};
|
|
122
|
+
export type TeamSnapshot = {
|
|
123
|
+
id: string;
|
|
124
|
+
name?: string;
|
|
125
|
+
};
|
|
126
|
+
export type MemberSnapshot = {
|
|
127
|
+
id: string;
|
|
128
|
+
userId: string;
|
|
129
|
+
role?: string;
|
|
130
|
+
};
|
|
131
|
+
export type InvitationSnapshot = {
|
|
132
|
+
id: string;
|
|
133
|
+
email?: string;
|
|
134
|
+
role?: string;
|
|
135
|
+
teamId?: string | null;
|
|
136
|
+
};
|
|
137
|
+
export type UserProfileLite = {
|
|
138
|
+
id: string;
|
|
139
|
+
name?: string;
|
|
140
|
+
email?: string;
|
|
141
|
+
} | null;
|
|
142
|
+
export type Builder<A extends readonly unknown[]> = (...args: A) => AuditLogEvent;
|
|
143
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
//#region src/auth/audit-log/events.ts
|
|
2
|
+
const EVENT_TYPES = {
|
|
3
|
+
USER_CREATED: "user_created",
|
|
4
|
+
USER_SIGNED_IN: "user_signed_in",
|
|
5
|
+
USER_SIGNED_OUT: "user_signed_out",
|
|
6
|
+
USER_SIGN_IN_FAILED: "user_sign_in_failed",
|
|
7
|
+
PASSWORD_RESET_REQUESTED: "password_reset_requested",
|
|
8
|
+
PASSWORD_RESET_COMPLETED: "password_reset_completed",
|
|
9
|
+
PASSWORD_CHANGED: "password_changed",
|
|
10
|
+
EMAIL_VERIFICATION_SENT: "email_verification_sent",
|
|
11
|
+
EMAIL_VERIFIED: "email_verified",
|
|
12
|
+
PROFILE_UPDATED: "profile_updated",
|
|
13
|
+
PROFILE_IMAGE_UPDATED: "profile_image_updated",
|
|
14
|
+
SESSION_CREATED: "session_created",
|
|
15
|
+
SESSION_REVOKED: "session_revoked",
|
|
16
|
+
ALL_SESSIONS_REVOKED: "all_sessions_revoked",
|
|
17
|
+
ACCOUNT_LINKED: "account_linked",
|
|
18
|
+
ACCOUNT_UNLINKED: "account_unlinked",
|
|
19
|
+
USER_BANNED: "user_banned",
|
|
20
|
+
USER_UNBANNED: "user_unbanned",
|
|
21
|
+
USER_DELETED: "user_deleted",
|
|
22
|
+
USER_IMPERSONATED: "user_impersonated",
|
|
23
|
+
USER_IMPERSONATED_STOPPED: "user_impersonated_stopped"
|
|
24
|
+
};
|
|
25
|
+
const ORGANIZATION_EVENT_TYPES = {
|
|
26
|
+
ORGANIZATION_CREATED: "organization_created",
|
|
27
|
+
ORGANIZATION_UPDATED: "organization_updated",
|
|
28
|
+
ORGANIZATION_MEMBER_ADDED: "organization_member_added",
|
|
29
|
+
ORGANIZATION_MEMBER_REMOVED: "organization_member_removed",
|
|
30
|
+
ORGANIZATION_MEMBER_ROLE_UPDATED: "organization_member_role_updated",
|
|
31
|
+
ORGANIZATION_MEMBER_INVITED: "organization_member_invited",
|
|
32
|
+
ORGANIZATION_MEMBER_INVITE_CANCELED: "organization_member_invite_canceled",
|
|
33
|
+
ORGANIZATION_MEMBER_INVITE_ACCEPTED: "organization_member_invite_accepted",
|
|
34
|
+
ORGANIZATION_MEMBER_INVITE_REJECTED: "organization_member_invite_rejected",
|
|
35
|
+
ORGANIZATION_TEAM_CREATED: "organization_team_created",
|
|
36
|
+
ORGANIZATION_TEAM_UPDATED: "organization_team_updated",
|
|
37
|
+
ORGANIZATION_TEAM_DELETED: "organization_team_deleted",
|
|
38
|
+
ORGANIZATION_TEAM_MEMBER_ADDED: "organization_team_member_added",
|
|
39
|
+
ORGANIZATION_TEAM_MEMBER_REMOVED: "organization_team_member_removed"
|
|
40
|
+
};
|
|
41
|
+
const ROUTES = {
|
|
42
|
+
SIGN_IN: "/sign-in",
|
|
43
|
+
SIGN_IN_EMAIL: "/sign-in/email",
|
|
44
|
+
SIGN_IN_EMAIL_OTP: "/sign-in/email-otp",
|
|
45
|
+
SIGN_IN_SOCIAL: "/sign-in/social",
|
|
46
|
+
SIGN_IN_SOCIAL_CALLBACK: "/callback/:id",
|
|
47
|
+
SIGN_IN_OAUTH_CALLBACK: "/oauth2/callback/:id",
|
|
48
|
+
SIGN_UP: "/sign-up",
|
|
49
|
+
SIGN_UP_EMAIL: "/sign-up/email",
|
|
50
|
+
SIGN_OUT: "/sign-out",
|
|
51
|
+
SEND_VERIFICATION_EMAIL: "/send-verification-email",
|
|
52
|
+
UPDATE_USER: "/update-user",
|
|
53
|
+
CHANGE_EMAIL: "/change-email",
|
|
54
|
+
VERIFY_EMAIL: "/verify-email",
|
|
55
|
+
CHANGE_PASSWORD: "/change-password",
|
|
56
|
+
SET_PASSWORD: "/set-password",
|
|
57
|
+
RESET_PASSWORD: "/reset-password",
|
|
58
|
+
REQUEST_PASSWORD_RESET: "/request-password-reset",
|
|
59
|
+
REVOKE_ALL_SESSIONS: "/revoke-sessions",
|
|
60
|
+
DASH_ROUTE: "/dash",
|
|
61
|
+
DASH_UPDATE_USER: "/dash/update-user",
|
|
62
|
+
DASH_REVOKE_SESSIONS_ALL: "/dash/sessions/revoke-all",
|
|
63
|
+
DASH_BAN_USER: "/dash/ban-user",
|
|
64
|
+
DASH_UNBAN_USER: "/dash/unban-user",
|
|
65
|
+
ADMIN_ROUTE: "/admin",
|
|
66
|
+
ADMIN_REVOKE_USER_SESSIONS: "/admin/revoke-user-sessions",
|
|
67
|
+
ADMIN_SET_PASSWORD: "/admin/set-user-password",
|
|
68
|
+
ADMIN_BAN_USER: "/admin/ban-user",
|
|
69
|
+
ADMIN_UNBAN_USER: "/admin/unban-user"
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
//#endregion
|
|
73
|
+
export { EVENT_TYPES, ORGANIZATION_EVENT_TYPES, ROUTES };
|
|
74
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy9ldmVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBzb25hbXVBdWRpdExvZyDtlIzrn6zqt7jsnbjsnbQgYXVkaXQtbG9nLWluZ2VzdG9y66GcIOyghOuLrO2VmOuKlCDsnbTrsqTtirggYm9keSDtg4DsnoUuXG4gKi9cbmV4cG9ydCB0eXBlIEF1ZGl0TG9nRXZlbnQgPSB7XG4gIGV2ZW50VHlwZTogc3RyaW5nO1xuICBldmVudERhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBldmVudEtleTogc3RyaW5nO1xuICBldmVudERpc3BsYXlOYW1lPzogc3RyaW5nO1xuICBpcEFkZHJlc3M/OiBzdHJpbmc7XG4gIGNpdHk/OiBzdHJpbmc7XG4gIGNvdW50cnk/OiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlPzogc3RyaW5nO1xufTtcblxuLy8gZGFzaChAYmV0dGVyLWF1dGgvaW5mcmEp7J2YIGF1ZGl0LWV2ZW50IOyDgeyImCDsp5HtlansnYQgU29uYW11IOuhnOy7rCDsoIHsnqwg6rK966Gc7JeQIOunnuqyjCDtj6ztjIUuXG5leHBvcnQgY29uc3QgRVZFTlRfVFlQRVMgPSB7XG4gIFVTRVJfQ1JFQVRFRDogXCJ1c2VyX2NyZWF0ZWRcIixcbiAgVVNFUl9TSUdORURfSU46IFwidXNlcl9zaWduZWRfaW5cIixcbiAgVVNFUl9TSUdORURfT1VUOiBcInVzZXJfc2lnbmVkX291dFwiLFxuICBVU0VSX1NJR05fSU5fRkFJTEVEOiBcInVzZXJfc2lnbl9pbl9mYWlsZWRcIixcbiAgUEFTU1dPUkRfUkVTRVRfUkVRVUVTVEVEOiBcInBhc3N3b3JkX3Jlc2V0X3JlcXVlc3RlZFwiLFxuICBQQVNTV09SRF9SRVNFVF9DT01QTEVURUQ6IFwicGFzc3dvcmRfcmVzZXRfY29tcGxldGVkXCIsXG4gIFBBU1NXT1JEX0NIQU5HRUQ6IFwicGFzc3dvcmRfY2hhbmdlZFwiLFxuICBFTUFJTF9WRVJJRklDQVRJT05fU0VOVDogXCJlbWFpbF92ZXJpZmljYXRpb25fc2VudFwiLFxuICBFTUFJTF9WRVJJRklFRDogXCJlbWFpbF92ZXJpZmllZFwiLFxuICBQUk9GSUxFX1VQREFURUQ6IFwicHJvZmlsZV91cGRhdGVkXCIsXG4gIFBST0ZJTEVfSU1BR0VfVVBEQVRFRDogXCJwcm9maWxlX2ltYWdlX3VwZGF0ZWRcIixcbiAgU0VTU0lPTl9DUkVBVEVEOiBcInNlc3Npb25fY3JlYXRlZFwiLFxuICBTRVNTSU9OX1JFVk9LRUQ6IFwic2Vzc2lvbl9yZXZva2VkXCIsXG4gIEFMTF9TRVNTSU9OU19SRVZPS0VEOiBcImFsbF9zZXNzaW9uc19yZXZva2VkXCIsXG4gIEFDQ09VTlRfTElOS0VEOiBcImFjY291bnRfbGlua2VkXCIsXG4gIEFDQ09VTlRfVU5MSU5LRUQ6IFwiYWNjb3VudF91bmxpbmtlZFwiLFxuICBVU0VSX0JBTk5FRDogXCJ1c2VyX2Jhbm5lZFwiLFxuICBVU0VSX1VOQkFOTkVEOiBcInVzZXJfdW5iYW5uZWRcIixcbiAgVVNFUl9ERUxFVEVEOiBcInVzZXJfZGVsZXRlZFwiLFxuICBVU0VSX0lNUEVSU09OQVRFRDogXCJ1c2VyX2ltcGVyc29uYXRlZFwiLFxuICBVU0VSX0lNUEVSU09OQVRFRF9TVE9QUEVEOiBcInVzZXJfaW1wZXJzb25hdGVkX3N0b3BwZWRcIixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBPUkdBTklaQVRJT05fRVZFTlRfVFlQRVMgPSB7XG4gIE9SR0FOSVpBVElPTl9DUkVBVEVEOiBcIm9yZ2FuaXphdGlvbl9jcmVhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9VUERBVEVEOiBcIm9yZ2FuaXphdGlvbl91cGRhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9NRU1CRVJfQURERUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9hZGRlZFwiLFxuICBPUkdBTklaQVRJT05fTUVNQkVSX1JFTU9WRUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9yZW1vdmVkXCIsXG4gIE9SR0FOSVpBVElPTl9NRU1CRVJfUk9MRV9VUERBVEVEOiBcIm9yZ2FuaXphdGlvbl9tZW1iZXJfcm9sZV91cGRhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9NRU1CRVJfSU5WSVRFRDogXCJvcmdhbml6YXRpb25fbWVtYmVyX2ludml0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVfQ0FOQ0VMRUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9pbnZpdGVfY2FuY2VsZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVfQUNDRVBURUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9pbnZpdGVfYWNjZXB0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX01FTUJFUl9JTlZJVEVfUkVKRUNURUQ6IFwib3JnYW5pemF0aW9uX21lbWJlcl9pbnZpdGVfcmVqZWN0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX1RFQU1fQ1JFQVRFRDogXCJvcmdhbml6YXRpb25fdGVhbV9jcmVhdGVkXCIsXG4gIE9SR0FOSVpBVElPTl9URUFNX1VQREFURUQ6IFwib3JnYW5pemF0aW9uX3RlYW1fdXBkYXRlZFwiLFxuICBPUkdBTklaQVRJT05fVEVBTV9ERUxFVEVEOiBcIm9yZ2FuaXphdGlvbl90ZWFtX2RlbGV0ZWRcIixcbiAgT1JHQU5JWkFUSU9OX1RFQU1fTUVNQkVSX0FEREVEOiBcIm9yZ2FuaXphdGlvbl90ZWFtX21lbWJlcl9hZGRlZFwiLFxuICBPUkdBTklaQVRJT05fVEVBTV9NRU1CRVJfUkVNT1ZFRDogXCJvcmdhbml6YXRpb25fdGVhbV9tZW1iZXJfcmVtb3ZlZFwiLFxufSBhcyBjb25zdDtcblxuLy8gZGFzaOydmCByb3V0ZXMg7IOB7IiYIOykkSDsmrDrpqzqsIAg7Iuk7KCcIG1hdGNoZXLroZwg7JOw64qUIO2VreuqqeunjCDtj6ztjIUuXG5leHBvcnQgY29uc3QgUk9VVEVTID0ge1xuICBTSUdOX0lOOiBcIi9zaWduLWluXCIsXG4gIFNJR05fSU5fRU1BSUw6IFwiL3NpZ24taW4vZW1haWxcIixcbiAgU0lHTl9JTl9FTUFJTF9PVFA6IFwiL3NpZ24taW4vZW1haWwtb3RwXCIsXG4gIFNJR05fSU5fU09DSUFMOiBcIi9zaWduLWluL3NvY2lhbFwiLFxuICBTSUdOX0lOX1NPQ0lBTF9DQUxMQkFDSzogXCIvY2FsbGJhY2svOmlkXCIsXG4gIFNJR05fSU5fT0FVVEhfQ0FMTEJBQ0s6IFwiL29hdXRoMi9jYWxsYmFjay86aWRcIixcbiAgU0lHTl9VUDogXCIvc2lnbi11cFwiLFxuICBTSUdOX1VQX0VNQUlMOiBcIi9zaWduLXVwL2VtYWlsXCIsXG4gIFNJR05fT1VUOiBcIi9zaWduLW91dFwiLFxuICBTRU5EX1ZFUklGSUNBVElPTl9FTUFJTDogXCIvc2VuZC12ZXJpZmljYXRpb24tZW1haWxcIixcbiAgVVBEQVRFX1VTRVI6IFwiL3VwZGF0ZS11c2VyXCIsXG4gIENIQU5HRV9FTUFJTDogXCIvY2hhbmdlLWVtYWlsXCIsXG4gIFZFUklGWV9FTUFJTDogXCIvdmVyaWZ5LWVtYWlsXCIsXG4gIENIQU5HRV9QQVNTV09SRDogXCIvY2hhbmdlLXBhc3N3b3JkXCIsXG4gIFNFVF9QQVNTV09SRDogXCIvc2V0LXBhc3N3b3JkXCIsXG4gIFJFU0VUX1BBU1NXT1JEOiBcIi9yZXNldC1wYXNzd29yZFwiLFxuICBSRVFVRVNUX1BBU1NXT1JEX1JFU0VUOiBcIi9yZXF1ZXN0LXBhc3N3b3JkLXJlc2V0XCIsXG4gIFJFVk9LRV9BTExfU0VTU0lPTlM6IFwiL3Jldm9rZS1zZXNzaW9uc1wiLFxuICBEQVNIX1JPVVRFOiBcIi9kYXNoXCIsXG4gIERBU0hfVVBEQVRFX1VTRVI6IFwiL2Rhc2gvdXBkYXRlLXVzZXJcIixcbiAgREFTSF9SRVZPS0VfU0VTU0lPTlNfQUxMOiBcIi9kYXNoL3Nlc3Npb25zL3Jldm9rZS1hbGxcIixcbiAgREFTSF9CQU5fVVNFUjogXCIvZGFzaC9iYW4tdXNlclwiLFxuICBEQVNIX1VOQkFOX1VTRVI6IFwiL2Rhc2gvdW5iYW4tdXNlclwiLFxuICBBRE1JTl9ST1VURTogXCIvYWRtaW5cIixcbiAgQURNSU5fUkVWT0tFX1VTRVJfU0VTU0lPTlM6IFwiL2FkbWluL3Jldm9rZS11c2VyLXNlc3Npb25zXCIsXG4gIEFETUlOX1NFVF9QQVNTV09SRDogXCIvYWRtaW4vc2V0LXVzZXItcGFzc3dvcmRcIixcbiAgQURNSU5fQkFOX1VTRVI6IFwiL2FkbWluL2Jhbi11c2VyXCIsXG4gIEFETUlOX1VOQkFOX1VTRVI6IFwiL2FkbWluL3VuYmFuLXVzZXJcIixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEJ1aWxkZXJUcmlnZ2VyID0geyB0cmlnZ2VyZWRCeTogc3RyaW5nOyB0cmlnZ2VyQ29udGV4dDogc3RyaW5nIH07XG5leHBvcnQgdHlwZSBCdWlsZGVyTG9jYXRpb24gPSB7XG4gIGlwQWRkcmVzcz86IHN0cmluZztcbiAgY2l0eT86IHN0cmluZztcbiAgY291bnRyeT86IHN0cmluZztcbiAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG59O1xuXG4vLyDruYzrjZTsl5Ag64SY6riw64qUIOy1nOyGjCDsl5Tti7Dti7Agc2hhcGUuIGJldHRlci1hdXRoIOuCtOu2gCDtg4DsnoXsnYQg6re464yA66GcIOyTsOyngCDslYrqs6Bcbi8vIO2VhOyalO2VnCDtlYTrk5zrp4wg7ISg7Ja47ZWY7JesIO2VuOuTpOufrCDroIjsnbTslrTsl5DshJwg7KKB7ZiA7IScIOyghOuLrO2VnOuLpC5cbmV4cG9ydCB0eXBlIFVzZXJTbmFwc2hvdCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGJhbm5lZD86IGJvb2xlYW47XG4gIGJhblJlYXNvbj86IHN0cmluZyB8IG51bGw7XG4gIGJhbkV4cGlyZXM/OiBEYXRlIHwgbnVsbDtcbn07XG5leHBvcnQgdHlwZSBTZXNzaW9uU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBsb2dpbk1ldGhvZD86IHN0cmluZyB8IG51bGw7XG4gIHVzZXJBZ2VudD86IHN0cmluZyB8IG51bGw7XG4gIGltcGVyc29uYXRlZEJ5Pzogc3RyaW5nIHwgbnVsbDtcbn07XG5leHBvcnQgdHlwZSBBY2NvdW50U25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBwcm92aWRlcklkOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgVmVyaWZpY2F0aW9uU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgT3JnYW5pemF0aW9uU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNsdWc/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgVGVhbVNuYXBzaG90ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIE1lbWJlclNuYXBzaG90ID0ge1xuICBpZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgcm9sZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBJbnZpdGF0aW9uU25hcHNob3QgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICByb2xlPzogc3RyaW5nO1xuICB0ZWFtSWQ/OiBzdHJpbmcgfCBudWxsO1xufTtcblxuLy8g7IKs7Jqp7J6QIO2UhOuhnO2VhCDrs7TsobAgKOyhsO2ajCDsi6TtjKgg7IucIG51bGwpXG5leHBvcnQgdHlwZSBVc2VyUHJvZmlsZUxpdGUgPSB7IGlkOiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGVtYWlsPzogc3RyaW5nIH0gfCBudWxsO1xuXG4vLyDrqqjrk6Ag67mM642U64qUIHB1cmU6IGlucHV0IC0+IEF1ZGl0TG9nRXZlbnQuXG4vLyDruYTrj5nquLAgYWRhcHRlciDsobDtmozripQgaG9vayDroIjsnbTslrTsl5DshJwg7IiY7ZaJ7ZWY6rOgLCDsobDtmowg6rKw6rO866W8IOyduOyekOuhnCDsoITri6ztlZzri6QuXG5leHBvcnQgdHlwZSBCdWlsZGVyPEEgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gKC4uLmFyZ3M6IEEpID0+IEF1ZGl0TG9nRXZlbnQ7XG4iXSwibWFwcGluZ3MiOiI7QUFlQSxNQUFhLGNBQWM7Q0FDekIsY0FBYztDQUNkLGdCQUFnQjtDQUNoQixpQkFBaUI7Q0FDakIscUJBQXFCO0NBQ3JCLDBCQUEwQjtDQUMxQiwwQkFBMEI7Q0FDMUIsa0JBQWtCO0NBQ2xCLHlCQUF5QjtDQUN6QixnQkFBZ0I7Q0FDaEIsaUJBQWlCO0NBQ2pCLHVCQUF1QjtDQUN2QixpQkFBaUI7Q0FDakIsaUJBQWlCO0NBQ2pCLHNCQUFzQjtDQUN0QixnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCLGFBQWE7Q0FDYixlQUFlO0NBQ2YsY0FBYztDQUNkLG1CQUFtQjtDQUNuQiwyQkFBMkI7Q0FDNUI7QUFFRCxNQUFhLDJCQUEyQjtDQUN0QyxzQkFBc0I7Q0FDdEIsc0JBQXNCO0NBQ3RCLDJCQUEyQjtDQUMzQiw2QkFBNkI7Q0FDN0Isa0NBQWtDO0NBQ2xDLDZCQUE2QjtDQUM3QixxQ0FBcUM7Q0FDckMscUNBQXFDO0NBQ3JDLHFDQUFxQztDQUNyQywyQkFBMkI7Q0FDM0IsMkJBQTJCO0NBQzNCLDJCQUEyQjtDQUMzQixnQ0FBZ0M7Q0FDaEMsa0NBQWtDO0NBQ25DO0FBR0QsTUFBYSxTQUFTO0NBQ3BCLFNBQVM7Q0FDVCxlQUFlO0NBQ2YsbUJBQW1CO0NBQ25CLGdCQUFnQjtDQUNoQix5QkFBeUI7Q0FDekIsd0JBQXdCO0NBQ3hCLFNBQVM7Q0FDVCxlQUFlO0NBQ2YsVUFBVTtDQUNWLHlCQUF5QjtDQUN6QixhQUFhO0NBQ2IsY0FBYztDQUNkLGNBQWM7Q0FDZCxpQkFBaUI7Q0FDakIsY0FBYztDQUNkLGdCQUFnQjtDQUNoQix3QkFBd0I7Q0FDeEIscUJBQXFCO0NBQ3JCLFlBQVk7Q0FDWixrQkFBa0I7Q0FDbEIsMEJBQTBCO0NBQzFCLGVBQWU7Q0FDZixpQkFBaUI7Q0FDakIsYUFBYTtDQUNiLDRCQUE0QjtDQUM1QixvQkFBb0I7Q0FDcEIsZ0JBQWdCO0NBQ2hCLGtCQUFrQjtDQUNuQiJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type BetterAuthPlugin } from "better-auth";
|
|
2
|
+
/**
|
|
3
|
+
* Better Auth databaseHooks/organizationHooks/middleware에서 수집한
|
|
4
|
+
* 이벤트를 `DB.getDB("w")`로 얻은 knex에 `ingestAuditEvent`로 적재한다.
|
|
5
|
+
*
|
|
6
|
+
* - dash(@better-auth/infra)의 audit-event 수집 훅 구조를 참고해 Sonamu 내부 적재 경로로 포팅한다.
|
|
7
|
+
* - dash의 infra 연결/API endpoint 제공 범위는 포함하지 않고, audit-event emit/ingest 경로만 유지한다.
|
|
8
|
+
* - security 4종은 R1 결정에 따라 scope out (builders.ts의 TODO 주석 참조).
|
|
9
|
+
*/
|
|
10
|
+
export declare function sonamuAuditLog(): BetterAuthPlugin;
|
|
11
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/auth/audit-log/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoNpD;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAkcjD"}
|