hazo_auth 4.4.0 → 4.5.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/README.md +207 -5
- package/SETUP_CHECKLIST.md +1 -1
- package/cli-src/lib/app_logger.ts +8 -18
- package/cli-src/lib/auth/auth_types.ts +22 -0
- package/cli-src/lib/auth/hazo_get_auth.server.ts +25 -1
- package/cli-src/lib/auth/session_token_validator.edge.ts +4 -0
- package/cli-src/lib/config/default_config.ts +36 -0
- package/cli-src/lib/navbar_config.server.ts +129 -0
- package/cli-src/lib/scope_hierarchy_config.server.ts +3 -14
- package/cli-src/lib/services/registration_service.ts +12 -0
- package/cli-src/lib/services/scope_labels_service.ts +21 -21
- package/cli-src/lib/services/scope_service.ts +15 -11
- package/cli-src/lib/services/session_token_service.ts +4 -0
- package/cli-src/lib/ui_shell_config.server.ts +15 -0
- package/cli-src/lib/user_types_config.server.ts +178 -0
- package/cli-src/server/types/app_types.ts +5 -7
- package/dist/app/api/hazo_auth/me/route.d.ts.map +1 -1
- package/dist/app/api/hazo_auth/me/route.js +17 -0
- package/dist/app/api/hazo_auth/org_management/orgs/route.d.ts +26 -0
- package/dist/app/api/hazo_auth/org_management/orgs/route.d.ts.map +1 -0
- package/dist/app/api/hazo_auth/org_management/orgs/route.js +315 -0
- package/dist/app/api/hazo_auth/user_management/users/route.d.ts +7 -0
- package/dist/app/api/hazo_auth/user_management/users/route.d.ts.map +1 -1
- package/dist/app/api/hazo_auth/user_management/users/route.js +48 -10
- package/dist/components/layouts/login/hooks/use_login_form.js +2 -2
- package/dist/components/layouts/my_settings/components/profile_picture_library_tab.d.ts.map +1 -1
- package/dist/components/layouts/my_settings/components/profile_picture_library_tab.js +8 -14
- package/dist/components/layouts/rbac_test/index.d.ts +1 -3
- package/dist/components/layouts/rbac_test/index.d.ts.map +1 -1
- package/dist/components/layouts/rbac_test/index.js +2 -2
- package/dist/components/layouts/shared/components/auth_navbar.d.ts +26 -0
- package/dist/components/layouts/shared/components/auth_navbar.d.ts.map +1 -0
- package/dist/components/layouts/shared/components/auth_navbar.js +14 -0
- package/dist/components/layouts/shared/components/auth_page_shell.d.ts +3 -1
- package/dist/components/layouts/shared/components/auth_page_shell.d.ts.map +1 -1
- package/dist/components/layouts/shared/components/auth_page_shell.js +17 -2
- package/dist/components/layouts/shared/components/standalone_layout_wrapper.d.ts +6 -1
- package/dist/components/layouts/shared/components/standalone_layout_wrapper.d.ts.map +1 -1
- package/dist/components/layouts/shared/components/standalone_layout_wrapper.js +7 -2
- package/dist/components/layouts/shared/index.d.ts +2 -0
- package/dist/components/layouts/shared/index.d.ts.map +1 -1
- package/dist/components/layouts/shared/index.js +1 -0
- package/dist/components/layouts/user_management/components/scope_hierarchy_tab.d.ts +3 -2
- package/dist/components/layouts/user_management/components/scope_hierarchy_tab.d.ts.map +1 -1
- package/dist/components/layouts/user_management/components/scope_hierarchy_tab.js +45 -18
- package/dist/components/layouts/user_management/components/scope_labels_tab.d.ts +3 -2
- package/dist/components/layouts/user_management/components/scope_labels_tab.d.ts.map +1 -1
- package/dist/components/layouts/user_management/components/scope_labels_tab.js +48 -20
- package/dist/components/layouts/user_management/components/user_scopes_tab.d.ts.map +1 -1
- package/dist/components/layouts/user_management/components/user_scopes_tab.js +1 -1
- package/dist/components/layouts/user_management/index.d.ts +11 -3
- package/dist/components/layouts/user_management/index.d.ts.map +1 -1
- package/dist/components/layouts/user_management/index.js +52 -5
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/user-type-badge.d.ts +23 -0
- package/dist/components/ui/user-type-badge.d.ts.map +1 -0
- package/dist/components/ui/user-type-badge.js +42 -0
- package/dist/lib/app_logger.d.ts +3 -9
- package/dist/lib/app_logger.d.ts.map +1 -1
- package/dist/lib/app_logger.js +7 -10
- package/dist/lib/auth/auth_types.d.ts +17 -0
- package/dist/lib/auth/auth_types.d.ts.map +1 -1
- package/dist/lib/auth/auth_types.js +11 -0
- package/dist/lib/auth/hazo_get_auth.server.d.ts.map +1 -1
- package/dist/lib/auth/hazo_get_auth.server.js +21 -1
- package/dist/lib/config/default_config.d.ts +60 -0
- package/dist/lib/config/default_config.d.ts.map +1 -1
- package/dist/lib/config/default_config.js +34 -0
- package/dist/lib/navbar_config.server.d.ts +36 -0
- package/dist/lib/navbar_config.server.d.ts.map +1 -0
- package/dist/lib/navbar_config.server.js +45 -0
- package/dist/lib/scope_hierarchy_config.server.d.ts +3 -7
- package/dist/lib/scope_hierarchy_config.server.d.ts.map +1 -1
- package/dist/lib/scope_hierarchy_config.server.js +1 -10
- package/dist/lib/services/registration_service.d.ts.map +1 -1
- package/dist/lib/services/registration_service.js +8 -0
- package/dist/lib/services/scope_labels_service.d.ts +7 -7
- package/dist/lib/services/scope_labels_service.d.ts.map +1 -1
- package/dist/lib/services/scope_labels_service.js +20 -20
- package/dist/lib/services/scope_service.d.ts +8 -5
- package/dist/lib/services/scope_service.d.ts.map +1 -1
- package/dist/lib/services/scope_service.js +9 -8
- package/dist/lib/ui_shell_config.server.d.ts +5 -0
- package/dist/lib/ui_shell_config.server.d.ts.map +1 -1
- package/dist/lib/ui_shell_config.server.js +5 -0
- package/dist/lib/user_types_config.server.d.ts +56 -0
- package/dist/lib/user_types_config.server.d.ts.map +1 -0
- package/dist/lib/user_types_config.server.js +100 -0
- package/dist/page_components/login.d.ts.map +1 -1
- package/dist/page_components/login.js +3 -7
- package/dist/server/config/config_loader.js +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -3
- package/dist/server/routes/index.d.ts +1 -0
- package/dist/server/routes/index.d.ts.map +1 -1
- package/dist/server/routes/index.js +2 -0
- package/dist/server/routes/org_management_orgs.d.ts +2 -0
- package/dist/server/routes/org_management_orgs.d.ts.map +1 -0
- package/dist/server/routes/org_management_orgs.js +2 -0
- package/dist/server/types/app_types.d.ts +3 -7
- package/dist/server/types/app_types.d.ts.map +1 -1
- package/dist/server_pages/login_client_wrapper.d.ts.map +1 -1
- package/dist/server_pages/login_client_wrapper.js +1 -3
- package/hazo_auth_config.example.ini +9 -0
- package/package.json +7 -1
- package/cli-src/server/logging/logger_service.ts +0 -56
- /package/public/profile_pictures/library/Cars/{050 - citroe/314/210n_c3.jpeg" → 050 - citro/303/253n_c3.jpeg"} +0 -0
- /package/public/profile_pictures/library/Cars/{064 - lamborghini_huraca/314/201n.jpeg" → 064 - lamborghini_hurac/303/241n.jpeg"} +0 -0
- /package/public/profile_pictures/library/Cars/{099 - citroe/314/210n_2cv_(classic).jpeg" → 099 - citro/303/253n_2cv_(classic).jpeg"} +0 -0
- /package/public/profile_pictures/library/Cars/{131 - lamborghini_huraca/314/201n_sto.jpeg" → 131 - lamborghini_hurac/303/241n_sto.jpeg"} +0 -0
|
@@ -21,7 +21,6 @@ import { useEffect, useState } from "react";
|
|
|
21
21
|
import login_layout from "../components/layouts/login";
|
|
22
22
|
import { createLayoutDataClient } from "../components/layouts/shared/data/layout_data_client";
|
|
23
23
|
import { create_sqlite_hazo_connect } from "../lib/hazo_connect_setup";
|
|
24
|
-
import { create_app_logger } from "../lib/app_logger";
|
|
25
24
|
// section: constants
|
|
26
25
|
const DEFAULT_IMAGE_SRC = "/globe.svg";
|
|
27
26
|
const DEFAULT_IMAGE_ALT = "Illustration of a globe representing secure authentication workflows";
|
|
@@ -35,20 +34,17 @@ const DEFAULT_IMAGE_BG = "#e2e8f0";
|
|
|
35
34
|
*/
|
|
36
35
|
export function LoginPage({ redirectRoute, successMessage = "Successfully logged in", alreadyLoggedInMessage = "You are already logged in", showLogoutButton = true, showReturnHomeButton = false, returnHomeButtonLabel = "Return home", returnHomePath = "/", forgotPasswordPath = "/hazo_auth/forgot_password", forgotPasswordLabel = "Forgot password?", createAccountPath = "/hazo_auth/register", createAccountLabel = "Create account", urlOnLogon, imageSrc = DEFAULT_IMAGE_SRC, imageAlt = DEFAULT_IMAGE_ALT, imageBackgroundColor = DEFAULT_IMAGE_BG, } = {}) {
|
|
37
36
|
const [dataClient, setDataClient] = useState(null);
|
|
38
|
-
const [logger, setLogger] = useState(null);
|
|
39
37
|
useEffect(() => {
|
|
40
|
-
// Initialize hazo_connect
|
|
38
|
+
// Initialize hazo_connect on client side
|
|
41
39
|
const hazoConnect = create_sqlite_hazo_connect();
|
|
42
40
|
const client = createLayoutDataClient(hazoConnect);
|
|
43
|
-
const appLogger = create_app_logger();
|
|
44
41
|
setDataClient(client);
|
|
45
|
-
setLogger(appLogger);
|
|
46
42
|
}, []);
|
|
47
43
|
// Show loading state while initializing
|
|
48
|
-
if (!dataClient
|
|
44
|
+
if (!dataClient) {
|
|
49
45
|
return (_jsx("div", { className: "cls_login_page_loading flex items-center justify-center min-h-screen", children: _jsx("div", { className: "text-slate-600 animate-pulse", children: "Loading..." }) }));
|
|
50
46
|
}
|
|
51
47
|
const LoginLayout = login_layout;
|
|
52
|
-
return (_jsx(LoginLayout, { image_src: imageSrc, image_alt: imageAlt, image_background_color: imageBackgroundColor, data_client: dataClient,
|
|
48
|
+
return (_jsx(LoginLayout, { image_src: imageSrc, image_alt: imageAlt, image_background_color: imageBackgroundColor, data_client: dataClient, redirectRoute: redirectRoute, successMessage: successMessage, alreadyLoggedInMessage: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath, forgot_password_path: forgotPasswordPath, forgot_password_label: forgotPasswordLabel, create_account_path: createAccountPath, create_account_label: createAccountLabel, urlOnLogon: urlOnLogon }));
|
|
53
49
|
}
|
|
54
50
|
export default LoginPage;
|
|
@@ -4,7 +4,7 @@ import fs from "fs";
|
|
|
4
4
|
import path from "path";
|
|
5
5
|
import axios from "axios";
|
|
6
6
|
import { HazoConfig } from "hazo_config/dist/lib";
|
|
7
|
-
import {
|
|
7
|
+
import { createLogger } from "hazo_logs";
|
|
8
8
|
const is_string_record = (value) => !!value &&
|
|
9
9
|
typeof value === "object" &&
|
|
10
10
|
!Array.isArray(value) &&
|
|
@@ -265,7 +265,7 @@ const create_emailer_client = (emailer_options, logger) => {
|
|
|
265
265
|
// section: loader
|
|
266
266
|
export const load_runtime_configuration = (options) => {
|
|
267
267
|
var _a, _b, _c;
|
|
268
|
-
const fallback_logger =
|
|
268
|
+
const fallback_logger = createLogger("hazo_auth_config");
|
|
269
269
|
const parsed_options = sanitize_configuration_options(options, fallback_logger);
|
|
270
270
|
const direct_configuration = parsed_options.direct_configuration;
|
|
271
271
|
const logger = (_a = direct_configuration === null || direct_configuration === void 0 ? void 0 : direct_configuration.logger) !== null && _a !== void 0 ? _a : fallback_logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAgBjD,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -3,13 +3,12 @@ var _a;
|
|
|
3
3
|
// section: imports
|
|
4
4
|
import http from "http";
|
|
5
5
|
import { create_server_app } from "./server";
|
|
6
|
-
import {
|
|
6
|
+
import { createLogger } from "hazo_logs";
|
|
7
7
|
// section: constants
|
|
8
8
|
const default_port = Number((_a = process.env.PORT) !== null && _a !== void 0 ? _a : 4100);
|
|
9
|
-
const server_namespace = "hazo_auth_server";
|
|
10
9
|
// section: bootstrap_runner
|
|
11
10
|
export const start_server = async () => {
|
|
12
|
-
const logger =
|
|
11
|
+
const logger = createLogger("hazo_auth_server");
|
|
13
12
|
const app = create_server_app();
|
|
14
13
|
const http_server = http.createServer(app);
|
|
15
14
|
return new Promise((resolve, reject) => {
|
|
@@ -20,4 +20,5 @@ export { GET as userManagementUsersGET, PATCH as userManagementUsersPATCH, POST
|
|
|
20
20
|
export { GET as userManagementPermissionsGET, POST as userManagementPermissionsPOST, PUT as userManagementPermissionsPUT, DELETE as userManagementPermissionsDELETE } from "./user_management_permissions.js";
|
|
21
21
|
export { GET as userManagementRolesGET, POST as userManagementRolesPOST, PUT as userManagementRolesPUT } from "./user_management_roles.js";
|
|
22
22
|
export { GET as userManagementUsersRolesGET, POST as userManagementUsersRolesPOST, PUT as userManagementUsersRolesPUT } from "./user_management_users_roles.js";
|
|
23
|
+
export { GET as orgManagementOrgsGET, POST as orgManagementOrgsPOST, PATCH as orgManagementOrgsPATCH, DELETE as orgManagementOrgsDELETE } from "./org_management_orgs.js";
|
|
23
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,GAAG,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGzE,OAAO,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,IAAI,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,MAAM,IAAI,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,GAAG,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,GAAG,IAAI,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAGjF,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EAAE,GAAG,IAAI,sBAAsB,EAAE,KAAK,IAAI,wBAAwB,EAAE,IAAI,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC/I,OAAO,EAAE,GAAG,IAAI,4BAA4B,EAAE,IAAI,IAAI,6BAA6B,EAAE,GAAG,IAAI,4BAA4B,EAAE,MAAM,IAAI,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAC9M,OAAO,EAAE,GAAG,IAAI,sBAAsB,EAAE,IAAI,IAAI,uBAAuB,EAAE,GAAG,IAAI,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC3I,OAAO,EAAE,GAAG,IAAI,2BAA2B,EAAE,IAAI,IAAI,4BAA4B,EAAE,GAAG,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,GAAG,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGzE,OAAO,EAAE,GAAG,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,IAAI,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,IAAI,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,MAAM,IAAI,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,GAAG,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,GAAG,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,GAAG,IAAI,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAGjF,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EAAE,GAAG,IAAI,sBAAsB,EAAE,KAAK,IAAI,wBAAwB,EAAE,IAAI,IAAI,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC/I,OAAO,EAAE,GAAG,IAAI,4BAA4B,EAAE,IAAI,IAAI,6BAA6B,EAAE,GAAG,IAAI,4BAA4B,EAAE,MAAM,IAAI,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAC9M,OAAO,EAAE,GAAG,IAAI,sBAAsB,EAAE,IAAI,IAAI,uBAAuB,EAAE,GAAG,IAAI,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC3I,OAAO,EAAE,GAAG,IAAI,2BAA2B,EAAE,IAAI,IAAI,4BAA4B,EAAE,GAAG,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAGhK,OAAO,EAAE,GAAG,IAAI,oBAAoB,EAAE,IAAI,IAAI,qBAAqB,EAAE,KAAK,IAAI,sBAAsB,EAAE,MAAM,IAAI,uBAAuB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -28,3 +28,5 @@ export { GET as userManagementUsersGET, PATCH as userManagementUsersPATCH, POST
|
|
|
28
28
|
export { GET as userManagementPermissionsGET, POST as userManagementPermissionsPOST, PUT as userManagementPermissionsPUT, DELETE as userManagementPermissionsDELETE } from "./user_management_permissions.js";
|
|
29
29
|
export { GET as userManagementRolesGET, POST as userManagementRolesPOST, PUT as userManagementRolesPUT } from "./user_management_roles.js";
|
|
30
30
|
export { GET as userManagementUsersRolesGET, POST as userManagementUsersRolesPOST, PUT as userManagementUsersRolesPUT } from "./user_management_users_roles.js";
|
|
31
|
+
// Organization management routes
|
|
32
|
+
export { GET as orgManagementOrgsGET, POST as orgManagementOrgsPOST, PATCH as orgManagementOrgsPATCH, DELETE as orgManagementOrgsDELETE } from "./org_management_orgs.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org_management_orgs.d.ts","sourceRoot":"","sources":["../../../src/server/routes/org_management_orgs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mDAAmD,CAAC"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import type { Request } from "express";
|
|
2
|
-
|
|
3
|
-
export type
|
|
4
|
-
|
|
5
|
-
info: logger_method;
|
|
6
|
-
warn: logger_method;
|
|
7
|
-
error: logger_method;
|
|
8
|
-
};
|
|
2
|
+
import type { Logger, LogData } from "hazo_logs";
|
|
3
|
+
export type logger_method = (message: string, data?: LogData) => void;
|
|
4
|
+
export type logger_service = Logger;
|
|
9
5
|
export type emailer_client = {
|
|
10
6
|
send_message: (payload: Record<string, unknown>) => Promise<{
|
|
11
7
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app_types.d.ts","sourceRoot":"","sources":["../../../src/server/types/app_types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"app_types.d.ts","sourceRoot":"","sources":["../../../src/server/types/app_types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIjD,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,KACX,IAAI,CAAC;AAGV,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAGpC,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,CACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,EAAE,cAAc,GAAG,cAAc,GAAG,UAAU,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB,GACD,SAAS,CAAC;AAEd,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,oBAAoB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,mBAAmB,CAAC;IAChC,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AAGF,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,GAAG;IACnD,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login_client_wrapper.d.ts","sourceRoot":"","sources":["../../src/server_pages/login_client_wrapper.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login_client_wrapper.d.ts","sourceRoot":"","sources":["../../src/server_pages/login_client_wrapper.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,sBAAsB,GAAG,OAAO,CAAC,GAAG;IACpH,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAGF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,GACN,EAAE,uBAAuB,2CAwCzB"}
|
|
@@ -6,7 +6,6 @@ import { useEffect, useState } from "react";
|
|
|
6
6
|
import LoginLayout from "../components/layouts/login";
|
|
7
7
|
import { createLayoutDataClient } from "../components/layouts/shared/data/layout_data_client";
|
|
8
8
|
import { create_sqlite_hazo_connect } from "../lib/hazo_connect_setup";
|
|
9
|
-
import { create_app_logger } from "../lib/app_logger";
|
|
10
9
|
// section: component
|
|
11
10
|
/**
|
|
12
11
|
* Client wrapper for LoginLayout
|
|
@@ -24,6 +23,5 @@ export function LoginClientWrapper({ image_src, image_alt, image_background_colo
|
|
|
24
23
|
if (!dataClient) {
|
|
25
24
|
return (_jsx("div", { className: "cls_login_page_loading flex items-center justify-center min-h-screen", children: _jsx("div", { className: "text-slate-600 animate-pulse", children: "Loading..." }) }));
|
|
26
25
|
}
|
|
27
|
-
|
|
28
|
-
return (_jsx(LoginLayout, { image_src: image_src, image_alt: image_alt, image_background_color: image_background_color, data_client: dataClient, logger: logger, redirectRoute: redirectRoute, successMessage: successMessage, alreadyLoggedInMessage: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath, forgot_password_path: forgotPasswordPath, forgot_password_label: forgotPasswordLabel, create_account_path: createAccountPath, create_account_label: createAccountLabel, oauth: oauth }));
|
|
26
|
+
return (_jsx(LoginLayout, { image_src: image_src, image_alt: image_alt, image_background_color: image_background_color, data_client: dataClient, redirectRoute: redirectRoute, successMessage: successMessage, alreadyLoggedInMessage: alreadyLoggedInMessage, showLogoutButton: showLogoutButton, showReturnHomeButton: showReturnHomeButton, returnHomeButtonLabel: returnHomeButtonLabel, returnHomePath: returnHomePath, forgot_password_path: forgotPasswordPath, forgot_password_label: forgotPasswordLabel, create_account_path: createAccountPath, create_account_label: createAccountLabel, oauth: oauth }));
|
|
29
27
|
}
|
|
@@ -561,6 +561,15 @@ application_permission_list_defaults = admin_user_management,admin_role_manageme
|
|
|
561
561
|
# When enabled, users can be assigned to organizations and hazo_get_auth returns org info
|
|
562
562
|
# enable_multi_tenancy = false
|
|
563
563
|
|
|
564
|
+
# NOTE: When multi-tenancy is enabled, org_id is OPTIONAL by default.
|
|
565
|
+
# Users without org_id will have null org fields in hazo_get_auth result.
|
|
566
|
+
#
|
|
567
|
+
# To REQUIRE org assignment for specific API routes, use:
|
|
568
|
+
# hazo_get_auth(request, { require_org: true })
|
|
569
|
+
#
|
|
570
|
+
# This will throw OrgRequiredError if the user has no org_id assigned.
|
|
571
|
+
# Consuming apps should catch this error and return an appropriate response.
|
|
572
|
+
|
|
564
573
|
# Organization cache TTL in minutes (default: 15)
|
|
565
574
|
# Cached org data will be refreshed after this time
|
|
566
575
|
# org_cache_ttl_minutes = 15
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_auth",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -196,6 +196,7 @@
|
|
|
196
196
|
"hazo_config": "^1.3.0",
|
|
197
197
|
"hazo_connect": "^2.3.5",
|
|
198
198
|
"hazo_notify": "^1.0.0",
|
|
199
|
+
"hazo_ui": "^2.0.0",
|
|
199
200
|
"helmet": "^8.1.0",
|
|
200
201
|
"ini": "^6.0.0",
|
|
201
202
|
"jose": "^5.9.6",
|
|
@@ -215,7 +216,11 @@
|
|
|
215
216
|
"tsx": "^4.20.6",
|
|
216
217
|
"zod": "^4.1.12"
|
|
217
218
|
},
|
|
219
|
+
"peerDependencies": {
|
|
220
|
+
"hazo_logs": "^1.0.0"
|
|
221
|
+
},
|
|
218
222
|
"devDependencies": {
|
|
223
|
+
"hazo_logs": "file:./hazo_logs-1.0.3.tgz",
|
|
219
224
|
"@chromatic-com/storybook": "^4.1.2",
|
|
220
225
|
"@storybook/addon-a11y": "^10.0.6",
|
|
221
226
|
"@storybook/addon-docs": "^10.0.6",
|
|
@@ -245,6 +250,7 @@
|
|
|
245
250
|
"jest": "^30.2.0",
|
|
246
251
|
"jest-environment-jsdom": "^29.7.0",
|
|
247
252
|
"patch-package": "^8.0.1",
|
|
253
|
+
"playwright": "^1.57.0",
|
|
248
254
|
"postcss": "^8",
|
|
249
255
|
"storybook": "^10.0.6",
|
|
250
256
|
"supertest": "^7.1.4",
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// file_description: expose the logging facade used across the hazo_auth backend
|
|
2
|
-
// section: imports
|
|
3
|
-
import type { logger_method, logger_service } from "../types/app_types";
|
|
4
|
-
|
|
5
|
-
// section: helper_functions
|
|
6
|
-
const create_console_logger = (namespace: string): logger_service => {
|
|
7
|
-
const write = (level: string, message: string, data?: Record<string, unknown>) => {
|
|
8
|
-
const timestamp = new Date().toISOString();
|
|
9
|
-
// eslint-disable-next-line no-console
|
|
10
|
-
console.log(
|
|
11
|
-
JSON.stringify({
|
|
12
|
-
namespace,
|
|
13
|
-
level,
|
|
14
|
-
message,
|
|
15
|
-
data,
|
|
16
|
-
timestamp,
|
|
17
|
-
})
|
|
18
|
-
);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
return {
|
|
22
|
-
debug: (message, data) => write("debug", message, data),
|
|
23
|
-
info: (message, data) => write("info", message, data),
|
|
24
|
-
warn: (message, data) => write("warn", message, data),
|
|
25
|
-
error: (message, data) => write("error", message, data),
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
// section: factory
|
|
30
|
-
export const create_logger_service = (
|
|
31
|
-
namespace: string,
|
|
32
|
-
external_logger?: Partial<logger_service>
|
|
33
|
-
): logger_service => {
|
|
34
|
-
const console_logger = create_console_logger(namespace);
|
|
35
|
-
|
|
36
|
-
const safe_bind = (
|
|
37
|
-
level: keyof logger_service,
|
|
38
|
-
fallback: logger_method
|
|
39
|
-
): logger_method => {
|
|
40
|
-
const candidate = external_logger?.[level];
|
|
41
|
-
if (typeof candidate === "function") {
|
|
42
|
-
return (message, data) => candidate(message, data);
|
|
43
|
-
}
|
|
44
|
-
return fallback;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
type logger_method = (message: string, data?: Record<string, unknown>) => void;
|
|
48
|
-
|
|
49
|
-
return {
|
|
50
|
-
debug: safe_bind("debug", console_logger.debug),
|
|
51
|
-
info: safe_bind("info", console_logger.info),
|
|
52
|
-
warn: safe_bind("warn", console_logger.warn),
|
|
53
|
-
error: safe_bind("error", console_logger.error),
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|