hazo_auth 4.3.0 → 4.4.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.
Files changed (105) hide show
  1. package/cli-src/lib/already_logged_in_config.server.ts +1 -1
  2. package/cli-src/lib/app_logger.ts +1 -1
  3. package/cli-src/lib/auth/auth_types.ts +7 -0
  4. package/cli-src/lib/auth/auth_utils.server.ts +2 -2
  5. package/cli-src/lib/auth/dev_lock_validator.edge.ts +171 -0
  6. package/cli-src/lib/auth/hazo_get_auth.server.ts +84 -13
  7. package/cli-src/lib/auth/index.ts +5 -5
  8. package/cli-src/lib/auth/nextauth_config.ts +4 -4
  9. package/cli-src/lib/auth/org_cache.ts +148 -0
  10. package/cli-src/lib/auth/server_auth.ts +2 -2
  11. package/cli-src/lib/auth/session_token_validator.edge.ts +1 -0
  12. package/cli-src/lib/auth_utility_config.server.ts +1 -1
  13. package/cli-src/lib/config/config_loader.server.ts +1 -1
  14. package/cli-src/lib/config/default_config.ts +44 -0
  15. package/cli-src/lib/dev_lock_config.server.ts +148 -0
  16. package/cli-src/lib/email_verification_config.server.ts +3 -3
  17. package/cli-src/lib/file_types_config.server.ts +1 -1
  18. package/cli-src/lib/forgot_password_config.server.ts +3 -3
  19. package/cli-src/lib/hazo_connect_instance.server.ts +2 -2
  20. package/cli-src/lib/hazo_connect_setup.server.ts +2 -2
  21. package/cli-src/lib/index.ts +24 -24
  22. package/cli-src/lib/login_config.server.ts +4 -4
  23. package/cli-src/lib/messages_config.server.ts +1 -1
  24. package/cli-src/lib/multi_tenancy_config.server.ts +94 -0
  25. package/cli-src/lib/my_settings_config.server.ts +7 -7
  26. package/cli-src/lib/oauth_config.server.ts +2 -2
  27. package/cli-src/lib/password_requirements_config.server.ts +2 -2
  28. package/cli-src/lib/profile_pic_menu_config.server.ts +1 -1
  29. package/cli-src/lib/profile_picture_config.server.ts +2 -2
  30. package/cli-src/lib/register_config.server.ts +5 -5
  31. package/cli-src/lib/reset_password_config.server.ts +4 -4
  32. package/cli-src/lib/scope_hierarchy_config.server.ts +2 -2
  33. package/cli-src/lib/services/email_service.ts +2 -2
  34. package/cli-src/lib/services/email_verification_service.ts +3 -3
  35. package/cli-src/lib/services/login_service.ts +3 -3
  36. package/cli-src/lib/services/oauth_service.ts +4 -4
  37. package/cli-src/lib/services/org_service.ts +965 -0
  38. package/cli-src/lib/services/password_change_service.ts +3 -3
  39. package/cli-src/lib/services/password_reset_service.ts +3 -3
  40. package/cli-src/lib/services/profile_picture_remove_service.ts +3 -3
  41. package/cli-src/lib/services/profile_picture_service.ts +5 -5
  42. package/cli-src/lib/services/registration_service.ts +8 -8
  43. package/cli-src/lib/services/scope_labels_service.ts +3 -3
  44. package/cli-src/lib/services/scope_service.ts +2 -2
  45. package/cli-src/lib/services/session_token_service.ts +3 -2
  46. package/cli-src/lib/services/token_service.ts +2 -2
  47. package/cli-src/lib/services/user_profiles_service.ts +4 -4
  48. package/cli-src/lib/services/user_scope_service.ts +3 -3
  49. package/cli-src/lib/services/user_update_service.ts +4 -4
  50. package/cli-src/lib/ui_shell_config.server.ts +1 -1
  51. package/cli-src/lib/ui_sizes_config.server.ts +1 -1
  52. package/cli-src/lib/user_fields_config.server.ts +1 -1
  53. package/cli-src/lib/user_management_config.server.ts +1 -1
  54. package/cli-src/lib/user_profiles_config.server.ts +1 -1
  55. package/cli-src/lib/utils/error_sanitizer.ts +1 -1
  56. package/cli-src/server/types/app_types.ts +74 -0
  57. package/cli-src/server/types/express.d.ts +16 -0
  58. package/dist/components/layouts/dev_lock/index.d.ts +29 -0
  59. package/dist/components/layouts/dev_lock/index.d.ts.map +1 -0
  60. package/dist/components/layouts/dev_lock/index.js +60 -0
  61. package/dist/components/layouts/index.d.ts +2 -0
  62. package/dist/components/layouts/index.d.ts.map +1 -1
  63. package/dist/components/layouts/index.js +1 -0
  64. package/dist/components/layouts/org_management/index.d.ts +26 -0
  65. package/dist/components/layouts/org_management/index.d.ts.map +1 -0
  66. package/dist/components/layouts/org_management/index.js +75 -0
  67. package/dist/components/layouts/user_management/components/org_hierarchy_tab.d.ts +13 -0
  68. package/dist/components/layouts/user_management/components/org_hierarchy_tab.d.ts.map +1 -0
  69. package/dist/components/layouts/user_management/components/org_hierarchy_tab.js +276 -0
  70. package/dist/components/layouts/user_management/index.d.ts +3 -1
  71. package/dist/components/layouts/user_management/index.d.ts.map +1 -1
  72. package/dist/components/layouts/user_management/index.js +10 -4
  73. package/dist/lib/auth/auth_types.d.ts +6 -0
  74. package/dist/lib/auth/auth_types.d.ts.map +1 -1
  75. package/dist/lib/auth/dev_lock_validator.edge.d.ts +38 -0
  76. package/dist/lib/auth/dev_lock_validator.edge.d.ts.map +1 -0
  77. package/dist/lib/auth/dev_lock_validator.edge.js +122 -0
  78. package/dist/lib/auth/hazo_get_auth.server.d.ts.map +1 -1
  79. package/dist/lib/auth/hazo_get_auth.server.js +61 -1
  80. package/dist/lib/auth/org_cache.d.ts +65 -0
  81. package/dist/lib/auth/org_cache.d.ts.map +1 -0
  82. package/dist/lib/auth/org_cache.js +103 -0
  83. package/dist/lib/config/default_config.d.ts +76 -0
  84. package/dist/lib/config/default_config.d.ts.map +1 -1
  85. package/dist/lib/config/default_config.js +42 -0
  86. package/dist/lib/dev_lock_config.server.d.ts +41 -0
  87. package/dist/lib/dev_lock_config.server.d.ts.map +1 -0
  88. package/dist/lib/dev_lock_config.server.js +50 -0
  89. package/dist/lib/multi_tenancy_config.server.d.ts +30 -0
  90. package/dist/lib/multi_tenancy_config.server.d.ts.map +1 -0
  91. package/dist/lib/multi_tenancy_config.server.js +41 -0
  92. package/dist/lib/services/org_service.d.ts +191 -0
  93. package/dist/lib/services/org_service.d.ts.map +1 -0
  94. package/dist/lib/services/org_service.js +746 -0
  95. package/dist/page_components/dev_lock.d.ts +11 -0
  96. package/dist/page_components/dev_lock.d.ts.map +1 -0
  97. package/dist/page_components/dev_lock.js +17 -0
  98. package/dist/page_components/index.d.ts +1 -0
  99. package/dist/page_components/index.d.ts.map +1 -1
  100. package/dist/page_components/index.js +1 -0
  101. package/dist/page_components/org_management.d.ts +27 -0
  102. package/dist/page_components/org_management.d.ts.map +1 -0
  103. package/dist/page_components/org_management.js +18 -0
  104. package/hazo_auth_config.example.ini +30 -0
  105. package/package.json +23 -2
@@ -0,0 +1,191 @@
1
+ import type { HazoConnectAdapter } from "hazo_connect";
2
+ /**
3
+ * Organization record from hazo_org table
4
+ */
5
+ export type OrgRecord = {
6
+ id: string;
7
+ name: string;
8
+ user_limit: number;
9
+ parent_org_id: string | null;
10
+ root_org_id: string | null;
11
+ active: boolean;
12
+ created_at: string;
13
+ created_by: string | null;
14
+ changed_at: string;
15
+ changed_by: string | null;
16
+ };
17
+ /**
18
+ * Organization record with computed user count
19
+ */
20
+ export type OrgWithUserCount = OrgRecord & {
21
+ current_user_count: number;
22
+ };
23
+ /**
24
+ * Result type for org service operations
25
+ */
26
+ export type OrgServiceResult = {
27
+ success: boolean;
28
+ org?: OrgRecord;
29
+ orgs?: OrgRecord[];
30
+ error?: string;
31
+ };
32
+ /**
33
+ * Result type for org service operations with user count
34
+ */
35
+ export type OrgServiceResultWithCount = {
36
+ success: boolean;
37
+ org?: OrgWithUserCount;
38
+ orgs?: OrgWithUserCount[];
39
+ error?: string;
40
+ };
41
+ /**
42
+ * Data for creating a new organization
43
+ */
44
+ export type CreateOrgData = {
45
+ name: string;
46
+ user_limit?: number;
47
+ parent_org_id?: string;
48
+ created_by: string;
49
+ };
50
+ /**
51
+ * Data for updating an organization
52
+ */
53
+ export type UpdateOrgData = {
54
+ name?: string;
55
+ user_limit?: number;
56
+ changed_by: string;
57
+ };
58
+ /**
59
+ * Organization tree node for hierarchy display
60
+ */
61
+ export type OrgTreeNode = OrgWithUserCount & {
62
+ children?: OrgTreeNode[];
63
+ };
64
+ /**
65
+ * Options for getting organizations
66
+ */
67
+ export type GetOrgsOptions = {
68
+ root_org_id?: string;
69
+ include_inactive?: boolean;
70
+ };
71
+ /**
72
+ * Gets the user count for an organization
73
+ * @param adapter - HazoConnect adapter
74
+ * @param org_id - Organization ID
75
+ * @returns User count
76
+ */
77
+ export declare function get_org_user_count(adapter: HazoConnectAdapter, org_id: string): Promise<{
78
+ success: boolean;
79
+ count?: number;
80
+ error?: string;
81
+ }>;
82
+ /**
83
+ * Gets user count for the root organization (includes all child orgs)
84
+ * @param adapter - HazoConnect adapter
85
+ * @param root_org_id - Root organization ID
86
+ * @returns Total user count across org tree
87
+ */
88
+ export declare function get_root_org_user_count(adapter: HazoConnectAdapter, root_org_id: string): Promise<{
89
+ success: boolean;
90
+ count?: number;
91
+ error?: string;
92
+ }>;
93
+ /**
94
+ * Gets all organizations, optionally filtered by root_org_id
95
+ * @param adapter - HazoConnect adapter
96
+ * @param options - Filter options
97
+ * @returns List of organizations
98
+ */
99
+ export declare function get_orgs(adapter: HazoConnectAdapter, options?: GetOrgsOptions): Promise<OrgServiceResult>;
100
+ /**
101
+ * Gets a single organization by ID with computed user count
102
+ * @param adapter - HazoConnect adapter
103
+ * @param org_id - Organization ID
104
+ * @returns Organization with user count
105
+ */
106
+ export declare function get_org_by_id(adapter: HazoConnectAdapter, org_id: string): Promise<OrgServiceResultWithCount>;
107
+ /**
108
+ * Creates a new organization
109
+ * @param adapter - HazoConnect adapter
110
+ * @param data - Organization data
111
+ * @returns Created organization
112
+ */
113
+ export declare function create_org(adapter: HazoConnectAdapter, data: CreateOrgData): Promise<OrgServiceResult>;
114
+ /**
115
+ * Updates an existing organization
116
+ * @param adapter - HazoConnect adapter
117
+ * @param org_id - Organization ID
118
+ * @param data - Update data
119
+ * @returns Updated organization
120
+ */
121
+ export declare function update_org(adapter: HazoConnectAdapter, org_id: string, data: UpdateOrgData): Promise<OrgServiceResult>;
122
+ /**
123
+ * Soft deletes an organization (sets active = false)
124
+ * @param adapter - HazoConnect adapter
125
+ * @param org_id - Organization ID
126
+ * @param changed_by - User ID making the change
127
+ * @returns Deactivated organization
128
+ */
129
+ export declare function soft_delete_org(adapter: HazoConnectAdapter, org_id: string, changed_by: string): Promise<OrgServiceResult>;
130
+ /**
131
+ * Gets immediate children of an organization
132
+ * @param adapter - HazoConnect adapter
133
+ * @param org_id - Parent organization ID
134
+ * @returns Child organizations
135
+ */
136
+ export declare function get_org_children(adapter: HazoConnectAdapter, org_id: string, include_inactive?: boolean): Promise<OrgServiceResult>;
137
+ /**
138
+ * Gets all ancestors of an organization up to root
139
+ * Returns array ordered from immediate parent to root
140
+ * @param adapter - HazoConnect adapter
141
+ * @param org_id - Organization ID
142
+ * @returns Ancestor organizations
143
+ */
144
+ export declare function get_org_ancestors(adapter: HazoConnectAdapter, org_id: string): Promise<OrgServiceResult>;
145
+ /**
146
+ * Gets all descendants of an organization
147
+ * Returns flat array of all descendant orgs
148
+ * @param adapter - HazoConnect adapter
149
+ * @param org_id - Organization ID
150
+ * @returns Descendant organizations
151
+ */
152
+ export declare function get_org_descendants(adapter: HazoConnectAdapter, org_id: string, include_inactive?: boolean): Promise<OrgServiceResult>;
153
+ /**
154
+ * Gets organization hierarchy tree
155
+ * @param adapter - HazoConnect adapter
156
+ * @param root_org_id - Optional root org ID to start from (global admin: no filter)
157
+ * @param include_inactive - Include inactive orgs in tree
158
+ * @returns Nested organization tree
159
+ */
160
+ export declare function get_org_tree(adapter: HazoConnectAdapter, root_org_id?: string, include_inactive?: boolean): Promise<{
161
+ success: boolean;
162
+ tree?: OrgTreeNode[];
163
+ error?: string;
164
+ }>;
165
+ /**
166
+ * Checks if a user can be added to an organization (user_limit check)
167
+ * Only applies to root-level orgs (checks root_org's user_limit)
168
+ * @param adapter - HazoConnect adapter
169
+ * @param org_id - Organization ID
170
+ * @returns Whether user can be added and reason if not
171
+ */
172
+ export declare function can_add_user_to_org(adapter: HazoConnectAdapter, org_id: string): Promise<{
173
+ success: boolean;
174
+ can_add: boolean;
175
+ reason?: string;
176
+ error?: string;
177
+ }>;
178
+ /**
179
+ * Checks if user has access to an organization (is in org's hierarchy)
180
+ * @param adapter - HazoConnect adapter
181
+ * @param user_org_id - User's org_id
182
+ * @param user_root_org_id - User's root_org_id
183
+ * @param target_org_id - Target org to check access to
184
+ * @returns Whether user has access
185
+ */
186
+ export declare function check_user_org_access(adapter: HazoConnectAdapter, user_org_id: string | null, user_root_org_id: string | null, target_org_id: string): Promise<{
187
+ success: boolean;
188
+ has_access: boolean;
189
+ error?: string;
190
+ }>;
191
+ //# sourceMappingURL=org_service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org_service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/org_service.ts"],"names":[],"mappings":"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"}