@sonisoft/now-sdk-ext-core 6.17.1 → 6.18.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 (39) hide show
  1. package/dist/auth/NowSDKAuthenticationHandler.js +8 -1
  2. package/dist/auth/NowSDKAuthenticationHandler.js.map +1 -1
  3. package/dist/auth/SessionElevation.d.ts +54 -0
  4. package/dist/auth/SessionElevation.js +100 -0
  5. package/dist/auth/SessionElevation.js.map +1 -0
  6. package/dist/comm/http/FormHtmlParser.js +23 -7
  7. package/dist/comm/http/FormHtmlParser.js.map +1 -1
  8. package/dist/comm/http/FormRecordWriter.js +20 -4
  9. package/dist/comm/http/FormRecordWriter.js.map +1 -1
  10. package/dist/index.d.ts +5 -0
  11. package/dist/index.js +5 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/sn/ServiceNowInstance.d.ts +9 -0
  14. package/dist/sn/ServiceNowInstance.js +4 -0
  15. package/dist/sn/ServiceNowInstance.js.map +1 -1
  16. package/dist/sn/metadata/MetadataFormWriter.d.ts +1 -0
  17. package/dist/sn/metadata/MetadataFormWriter.js +28 -6
  18. package/dist/sn/metadata/MetadataFormWriter.js.map +1 -1
  19. package/dist/sn/metadata/MetadataScopeError.d.ts +2 -2
  20. package/dist/sn/metadata/MetadataScopeError.js.map +1 -1
  21. package/dist/sn/metadata/internal/AccessControlWriters.d.ts +5 -0
  22. package/dist/sn/metadata/internal/AccessControlWriters.js +6 -0
  23. package/dist/sn/metadata/internal/AccessControlWriters.js.map +1 -0
  24. package/dist/sn/metadata/internal/MetadataFormActions.d.ts +1 -1
  25. package/dist/sn/metadata/internal/MetadataFormActions.js +9 -2
  26. package/dist/sn/metadata/internal/MetadataFormActions.js.map +1 -1
  27. package/dist/sn/security/AclError.d.ts +21 -0
  28. package/dist/sn/security/AclError.js +35 -0
  29. package/dist/sn/security/AclError.js.map +1 -0
  30. package/dist/sn/security/AclManager.d.ts +53 -0
  31. package/dist/sn/security/AclManager.js +396 -0
  32. package/dist/sn/security/AclManager.js.map +1 -0
  33. package/dist/sn/security/AclModels.d.ts +102 -0
  34. package/dist/sn/security/AclModels.js +2 -0
  35. package/dist/sn/security/AclModels.js.map +1 -0
  36. package/dist/sn/security/RoleElevation.d.ts +16 -0
  37. package/dist/sn/security/RoleElevation.js +22 -0
  38. package/dist/sn/security/RoleElevation.js.map +1 -0
  39. package/package.json +1 -1
@@ -12,10 +12,21 @@ import { comparePreferences, preferenceValue } from './internal/MetadataPreferen
12
12
  import { updateName, updateNameFields } from './internal/MetadataUpdateNames.js';
13
13
  import { customizationEvidence, resolveScope } from './internal/MetadataScope.js';
14
14
  import { requirePlatformDelete } from './internal/MetadataFormActions.js';
15
+ import { readElevation } from '../../auth/SessionElevation.js';
16
+ import { accessControlWriters } from './internal/AccessControlWriters.js';
15
17
  const ID = /^[a-f0-9]{32}$/i;
16
18
  const NAME = /^[a-z0-9_]+$/i;
17
19
  const WRITE_DENY = new Set(['sys_update_set', 'sys_update_xml', 'sys_scope', 'sys_app', 'sys_store_app',
18
- 'sys_db_object', 'sys_dictionary', 'sys_security_acl', 'sys_user_role']);
20
+ 'sys_db_object', 'sys_dictionary', 'sys_security_acl', 'sys_security_acl_role', 'sys_user_role']);
21
+ /**
22
+ * Tables only an elevated role may change, with that role. Unelevated, the ACL form refuses an insert ("Invalid insert")
23
+ * and turns an update into a 302 that changes nothing, so the role is checked on the writing session before any POST.
24
+ * They stay in WRITE_DENY for the generic writer: an ACL written field by field skips AclManager's safeguards (the
25
+ * platform's snc_internal role on a role-less ACL, staging before activation). Only AclManager opts in.
26
+ */
27
+ const ELEVATED_TABLES = { sys_security_acl: 'security_admin', sys_security_acl_role: 'security_admin' };
28
+ /** Columns named sys_* that are a table's own data, not system fields: an ACL role row is nothing but its two references. */
29
+ const SYSTEM_NAMED_FIELDS = { sys_security_acl_role: ['sys_security_acl', 'sys_user_role'] };
19
30
  const DELETE_DENY = new Set(['sys_documentation', 'sys_package', 'sys_app_module']);
20
31
  const VARIABLE_REFERENCES = {
21
32
  catalog_script_client: { field: 'cat_variable', item: 'cat_item' },
@@ -100,19 +111,23 @@ export class MetadataFormWriter {
100
111
  if (!belongs)
101
112
  refuse();
102
113
  }
114
+ /** Checks the table may be written here; returns it and the tables it extends, nearest first. */
103
115
  async table(reader, table, deleting) {
104
116
  const visited = new Set();
117
+ const names = [];
105
118
  let rows = await reader.rows('sys_db_object', `name=${table}`, 'sys_id,name,super_class');
106
119
  if (rows.length !== 1 || rows[0].name !== table)
107
120
  throw new MetadataScopeError('table_not_supported');
108
121
  while (rows.length === 1) {
109
122
  const row = rows[0];
110
- if (visited.has(row.sys_id) || WRITE_DENY.has(row.name) || (deleting && DELETE_DENY.has(row.name))) {
123
+ const denied = WRITE_DENY.has(row.name) && !(accessControlWriters.has(this) && ELEVATED_TABLES[row.name]);
124
+ if (visited.has(row.sys_id) || denied || (deleting && DELETE_DENY.has(row.name))) {
111
125
  throw new MetadataScopeError('table_not_supported');
112
126
  }
113
127
  visited.add(row.sys_id);
128
+ names.push(row.name);
114
129
  if (row.name === 'sys_metadata')
115
- return;
130
+ return names;
116
131
  if (!ID.test(row.super_class))
117
132
  break;
118
133
  const parent = await reader.exact('sys_db_object', row.super_class, 'name,super_class');
@@ -143,7 +158,13 @@ export class MetadataFormWriter {
143
158
  throw new MetadataScopeError('store_scope');
144
159
  if (store && !options.updateSet)
145
160
  throw new MetadataScopeError('update_set_required');
146
- await this.table(reader, table, operation === 'delete');
161
+ const lineage = await this.table(reader, table, operation === 'delete');
162
+ const role = lineage.map(name => ELEVATED_TABLES[name]).find(Boolean);
163
+ if (role) {
164
+ const elevated = await readElevation(await request.getUserSession()).then(state => state.elevated, () => []);
165
+ if (!elevated.includes(role))
166
+ throw new MetadataScopeError('elevation_required', { table });
167
+ }
147
168
  const nameFields = updateNameFields(table);
148
169
  let existing;
149
170
  if (operation !== 'insert') {
@@ -188,7 +209,8 @@ export class MetadataFormWriter {
188
209
  throw new MetadataScopeError('scope_not_applied');
189
210
  const writeOptions = options;
190
211
  for (const field of Object.keys(writeOptions.fields ?? {})) {
191
- if (!NAME.test(field) || /^sys_/i.test(field) || !form.fields[`${table}.${field}`])
212
+ const system = /^sys_/i.test(field) && !SYSTEM_NAMED_FIELDS[table]?.includes(field);
213
+ if (!NAME.test(field) || system || !form.fields[`${table}.${field}`])
192
214
  throw new MetadataScopeError('field_not_supported', { field, table });
193
215
  }
194
216
  const variableReference = await this.variableReference(reader, table, recordId, writeOptions, operation);
@@ -203,7 +225,7 @@ export class MetadataFormWriter {
203
225
  if (operation !== 'insert' && !form.actions[action])
204
226
  throw new MetadataScopeError('not_permitted');
205
227
  if (operation === 'delete')
206
- await requirePlatformDelete(reader, form.actions);
228
+ await requirePlatformDelete(reader, form.actions, table);
207
229
  try {
208
230
  transport.validate(form, options);
209
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataFormWriter.js","sourceRoot":"","sources":["../../../src/sn/metadata/MetadataFormWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetadataFormWriter.js","sourceRoot":"","sources":["../../../src/sn/metadata/MetadataFormWriter.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export interface MetadataErrorDetail {
13
13
  }
14
14
  /** A refusal before the form POST. Messages contain codes, never caller values. */
15
15
  export declare class MetadataScopeError extends Error {
16
- readonly code: 'scope_required' | 'scope_unknown' | 'scope_ambiguous' | 'scope_mismatch' | 'scope_not_applied' | 'store_scope' | 'table_not_supported' | 'field_not_supported' | 'delete_not_supported' | 'not_permitted' | 'csrf_token_unavailable' | 'invalid_input' | 'evidence_unavailable' | 'update_set_required' | 'protected_record' | 'form_redirected' | 'update_set_not_current' | 'section_not_supported' | 'domain_not_supported' | 'column_exists' | 'column_not_found' | 'choice_list_inherited' | 'choice_not_found' | 'choice_ambiguous' | 'choice_in_use' | 'choice_unchanged' | 'confirmation_required' | 'column_not_deletable' | 'column_has_data' | 'column_has_dependents' | 'column_referenced';
16
+ readonly code: 'scope_required' | 'scope_unknown' | 'scope_ambiguous' | 'scope_mismatch' | 'scope_not_applied' | 'store_scope' | 'table_not_supported' | 'field_not_supported' | 'delete_not_supported' | 'not_permitted' | 'csrf_token_unavailable' | 'invalid_input' | 'evidence_unavailable' | 'update_set_required' | 'protected_record' | 'form_redirected' | 'update_set_not_current' | 'section_not_supported' | 'domain_not_supported' | 'column_exists' | 'column_not_found' | 'choice_list_inherited' | 'choice_not_found' | 'choice_ambiguous' | 'choice_in_use' | 'choice_unchanged' | 'confirmation_required' | 'column_not_deletable' | 'column_has_data' | 'column_has_dependents' | 'column_referenced' | 'elevation_required';
17
17
  readonly detail?: MetadataErrorDetail;
18
- constructor(code: 'scope_required' | 'scope_unknown' | 'scope_ambiguous' | 'scope_mismatch' | 'scope_not_applied' | 'store_scope' | 'table_not_supported' | 'field_not_supported' | 'delete_not_supported' | 'not_permitted' | 'csrf_token_unavailable' | 'invalid_input' | 'evidence_unavailable' | 'update_set_required' | 'protected_record' | 'form_redirected' | 'update_set_not_current' | 'section_not_supported' | 'domain_not_supported' | 'column_exists' | 'column_not_found' | 'choice_list_inherited' | 'choice_not_found' | 'choice_ambiguous' | 'choice_in_use' | 'choice_unchanged' | 'confirmation_required' | 'column_not_deletable' | 'column_has_data' | 'column_has_dependents' | 'column_referenced', detail?: MetadataErrorDetail);
18
+ constructor(code: 'scope_required' | 'scope_unknown' | 'scope_ambiguous' | 'scope_mismatch' | 'scope_not_applied' | 'store_scope' | 'table_not_supported' | 'field_not_supported' | 'delete_not_supported' | 'not_permitted' | 'csrf_token_unavailable' | 'invalid_input' | 'evidence_unavailable' | 'update_set_required' | 'protected_record' | 'form_redirected' | 'update_set_not_current' | 'section_not_supported' | 'domain_not_supported' | 'column_exists' | 'column_not_found' | 'choice_list_inherited' | 'choice_not_found' | 'choice_ambiguous' | 'choice_in_use' | 'choice_unchanged' | 'confirmation_required' | 'column_not_deletable' | 'column_has_data' | 'column_has_dependents' | 'column_referenced' | 'elevation_required', detail?: MetadataErrorDetail);
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataScopeError.js","sourceRoot":"","sources":["../../../src/sn/metadata/MetadataScopeError.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,oBAAoB,CAAC;AACxC,2EAA2E;AAC3E,MAAM,KAAK,GAAG,4CAA4C,CAAC;AAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAe9D,SAAS,UAAU,CAAC,MAA4B;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACxE,IAAI,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7E,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACrI,IAAI,MAAM,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,oBAAoB,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACnI,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,IAAI,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC5E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/H,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,mFAAmF;AACnF,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEN;IADnB,MAAM,CAAuB;IAC7C,YAAmC,IAMqF,EACpH,MAA4B;QAC5B,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QARV,SAAI,GAAJ,IAAI,CAMiF;QAGpH,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;CACJ"}
1
+ {"version":3,"file":"MetadataScopeError.js","sourceRoot":"","sources":["../../../src/sn/metadata/MetadataScopeError.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,oBAAoB,CAAC;AACxC,2EAA2E;AAC3E,MAAM,KAAK,GAAG,4CAA4C,CAAC;AAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAe9D,SAAS,UAAU,CAAC,MAA4B;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACxE,IAAI,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7E,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACrI,IAAI,MAAM,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,oBAAoB,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACnI,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,IAAI,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC5E,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/H,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,mFAAmF;AACnF,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEN;IADnB,MAAM,CAAuB;IAC7C,YAAmC,IAOX,EACpB,MAA4B;QAC5B,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QATV,SAAI,GAAJ,IAAI,CAOf;QAGpB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;CACJ"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * MetadataFormWriter instances allowed to write the access-control tables. Internal (not in the public barrel): only
3
+ * AclManager adds to it, so the generic writer, and `nex metadata`, keep refusing ACLs.
4
+ */
5
+ export declare const accessControlWriters: WeakSet<object>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * MetadataFormWriter instances allowed to write the access-control tables. Internal (not in the public barrel): only
3
+ * AclManager adds to it, so the generic writer, and `nex metadata`, keep refusing ACLs.
4
+ */
5
+ export const accessControlWriters = new WeakSet();
6
+ //# sourceMappingURL=AccessControlWriters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessControlWriters.js","sourceRoot":"","sources":["../../../../src/sn/metadata/internal/AccessControlWriters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAU,CAAC"}
@@ -3,4 +3,4 @@ import type { MetadataReader } from './MetadataReader.js';
3
3
  * The form's Delete must be the platform's own global Delete action, the one whose client script only confirms and posts
4
4
  * `sysverb_delete`. A table's own Delete action may do something else, so posting the verb would not be what it does.
5
5
  */
6
- export declare function requirePlatformDelete(reader: MetadataReader, actions: Record<string, string>): Promise<void>;
6
+ export declare function requirePlatformDelete(reader: MetadataReader, actions: Record<string, string>, table?: string): Promise<void>;
@@ -1,17 +1,24 @@
1
1
  import { MetadataScopeError } from '../MetadataScopeError.js';
2
2
  const ID = /^[a-f0-9]{32}$/i;
3
+ /**
4
+ * Tables whose own Delete action is known to do exactly what the global one does (confirm, post `sysverb_delete`) and
5
+ * only narrows when it is offered: High Security Settings' Delete on sys_security_acl, offered for a record ACL only
6
+ * while it is inactive.
7
+ */
8
+ const OWN_DELETE_TABLES = new Set(['sys_security_acl']);
3
9
  /**
4
10
  * The form's Delete must be the platform's own global Delete action, the one whose client script only confirms and posts
5
11
  * `sysverb_delete`. A table's own Delete action may do something else, so posting the verb would not be what it does.
6
12
  */
7
- export async function requirePlatformDelete(reader, actions) {
13
+ export async function requirePlatformDelete(reader, actions, table) {
8
14
  const actionId = actions.sysverb_delete;
9
15
  if (!actionId)
10
16
  throw new MetadataScopeError('not_permitted');
11
17
  if (!ID.test(actionId))
12
18
  throw new MetadataScopeError('delete_not_supported');
13
19
  const definition = await reader.exact('sys_ui_action', actionId, 'table,action_name,onclick,name');
14
- if (!definition || definition.table !== 'global' || definition.action_name !== 'sysverb_delete' ||
20
+ const owner = definition?.table === 'global' || (!!table && OWN_DELETE_TABLES.has(table) && definition?.table === table);
21
+ if (!definition || !owner || definition.action_name !== 'sysverb_delete' ||
15
22
  definition.name !== 'Delete' || !/^\s*(?:return\s+)?confirmAndDeleteFromForm\(\);?\s*$/.test(definition.onclick)) {
16
23
  throw new MetadataScopeError('delete_not_supported');
17
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataFormActions.js","sourceRoot":"","sources":["../../../../src/sn/metadata/internal/MetadataFormActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,EAAE,GAAG,iBAAiB,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAsB,EAAE,OAA+B;IAC/F,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,gCAAgC,CAAC,CAAC;IACnG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,WAAW,KAAK,gBAAgB;QAC3F,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,sDAAsD,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnH,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"MetadataFormActions.js","sourceRoot":"","sources":["../../../../src/sn/metadata/internal/MetadataFormActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,EAAE,GAAG,iBAAiB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAsB,EAAE,OAA+B,EAAE,KAAc;IAC/G,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,gCAAgC,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC;IACzH,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,WAAW,KAAK,gBAAgB;QACpE,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,sDAAsD,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnH,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC;AACL,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type AclErrorCode = 'invalid_input' | 'elevation_required' | 'filter_required' | 'acl_not_found' | 'type_not_found' | 'operation_not_found' | 'table_not_found' | 'field_not_found' | 'role_not_found' | 'role_already_present' | 'role_not_present' | 'confirmation_required' | 'scope_mismatch' | 'roles_not_applied' | 'partially_applied';
2
+ /** A refusal of an ACL operation before anything was written. Detail carries names that passed a strict check only. */
3
+ export declare class AclError extends Error {
4
+ readonly code: AclErrorCode;
5
+ readonly detail?: string;
6
+ constructor(code: AclErrorCode, detail?: string);
7
+ }
8
+ /** An ACL's state read back after a failure. */
9
+ export type AclState = 'active' | 'inactive' | 'deleted' | 'unknown';
10
+ /**
11
+ * A create or delete that failed part way, after a write. `state` is the ACL as read back afterwards: a create
12
+ * activates only as its last step, and a delete that deactivated a record ACL reactivates it on any failure. `cause` is
13
+ * the failure.
14
+ */
15
+ export declare class AclPartialError extends AclError {
16
+ readonly aclSysId: string;
17
+ readonly operation: 'create' | 'delete';
18
+ readonly state: AclState;
19
+ readonly cause: unknown;
20
+ constructor(aclSysId: string, operation: 'create' | 'delete', state: AclState, cause: unknown);
21
+ }
@@ -0,0 +1,35 @@
1
+ const IDENTIFIER = /^[a-z0-9_.*]{1,120}$/i;
2
+ /** A refusal of an ACL operation before anything was written. Detail carries names that passed a strict check only. */
3
+ export class AclError extends Error {
4
+ code;
5
+ detail;
6
+ constructor(code, detail) {
7
+ const safe = detail && IDENTIFIER.test(detail) ? detail : undefined;
8
+ super(`ACL operation refused: ${code}${safe ? ` (${safe})` : ''}`);
9
+ this.code = code;
10
+ this.name = 'AclError';
11
+ this.detail = safe;
12
+ }
13
+ }
14
+ /**
15
+ * A create or delete that failed part way, after a write. `state` is the ACL as read back afterwards: a create
16
+ * activates only as its last step, and a delete that deactivated a record ACL reactivates it on any failure. `cause` is
17
+ * the failure.
18
+ */
19
+ export class AclPartialError extends AclError {
20
+ aclSysId;
21
+ operation;
22
+ state;
23
+ cause;
24
+ constructor(aclSysId, operation, state, cause) {
25
+ super('partially_applied');
26
+ this.aclSysId = aclSysId;
27
+ this.operation = operation;
28
+ this.state = state;
29
+ this.cause = cause;
30
+ this.name = 'AclPartialError';
31
+ const described = state === 'unknown' ? 'in an unknown state: read it back' : state === 'active' ? 'ACTIVE' : state;
32
+ this.message = `ACL ${aclSysId}: the ${operation} failed part way; the ACL is ${described}.`;
33
+ }
34
+ }
35
+ //# sourceMappingURL=AclError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AclError.js","sourceRoot":"","sources":["../../../src/sn/security/AclError.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAO3C,uHAAuH;AACvH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEI;IADnB,MAAM,CAAU;IAChC,YAAmC,IAAkB,EAAE,MAAe;QAClE,MAAM,IAAI,GAAG,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,KAAK,CAAC,0BAA0B,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAFpC,SAAI,GAAJ,IAAI,CAAc;QAGjD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;CACJ;AAKD;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IACN;IAAkC;IACjD;IAAiC;IADrD,YAAmC,QAAgB,EAAkB,SAA8B,EAC/E,KAAe,EAAkB,KAAc;QAC/D,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAFI,aAAQ,GAAR,QAAQ,CAAQ;QAAkB,cAAS,GAAT,SAAS,CAAqB;QAC/E,UAAK,GAAL,KAAK,CAAU;QAAkB,UAAK,GAAL,KAAK,CAAS;QAE/D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACpH,IAAI,CAAC,OAAO,GAAG,OAAO,QAAQ,SAAS,SAAS,gCAAgC,SAAS,GAAG,CAAC;IACjG,CAAC;CACJ"}
@@ -0,0 +1,53 @@
1
+ import type { ServiceNowInstance } from '../ServiceNowInstance.js';
2
+ import type { AclCreateOptions, AclDeleteOptions, AclListOptions, AclRecord, AclUpdateOptions, AclWriteResult, AclWriteTarget } from './AclModels.js';
3
+ /**
4
+ * Access controls (sys_security_acl) and their roles, written through their forms in a named
5
+ * application and update set, each write verified by reading back its record and capture.
6
+ *
7
+ * Changing an ACL needs the elevated security_admin role on the writing session: construct the
8
+ * ServiceNowInstance with `elevatedRoles: ['security_admin']`. Reading ACLs needs no elevation,
9
+ * though a role row naming security_admin shows no role name until the session is elevated.
10
+ *
11
+ * Creating an ACL with roles inserts it inactive, adds the roles, removes the snc_internal role
12
+ * the platform adds to an ACL that has none, then activates it: an ACL never stands active with
13
+ * fewer restrictions than asked for. Roles on an ACL are alternatives, so snc_internal left
14
+ * beside them would let every internal user pass.
15
+ */
16
+ export declare class AclManager {
17
+ private readonly _instance;
18
+ private _decisionType;
19
+ constructor(_instance: ServiceNowInstance);
20
+ private reader;
21
+ /** ACLs matching every given filter. At least one of table, name or scope is required. */
22
+ list(options: AclListOptions): Promise<AclRecord[]>;
23
+ /** One ACL with its roles. */
24
+ get(sysId: string): Promise<AclRecord>;
25
+ create(options: AclCreateOptions): Promise<AclWriteResult>;
26
+ private finishCreate;
27
+ update(sysId: string, options: AclUpdateOptions): Promise<AclWriteResult>;
28
+ /**
29
+ * Deletes the ACL. The platform deletes its role rows with it (each captured as a DELETE). It offers Delete on an
30
+ * active record ACL only once it is inactive, so one is deactivated first, as a separate captured update.
31
+ */
32
+ delete(sysId: string, options: AclDeleteOptions): Promise<AclWriteResult>;
33
+ addRole(sysId: string, role: string, target: AclWriteTarget): Promise<AclWriteResult>;
34
+ /** Removing the last role makes the platform add snc_internal back; the result warns when it did. */
35
+ removeRole(sysId: string, role: string, target: AclWriteTarget): Promise<AclWriteResult>;
36
+ private target;
37
+ /** A writer allowed the access-control tables (the generic one refuses them). */
38
+ private writer;
39
+ /** The ACL read back after a failure. */
40
+ private state;
41
+ /** A role row is written in the target application; it must be the ACL's own. */
42
+ private requireSameScope;
43
+ private requireElevation;
44
+ /** decision_type exists from the release that added deny ACLs; read it only where it does. */
45
+ private fields;
46
+ private fieldValues;
47
+ private lookup;
48
+ private aclName;
49
+ private roles;
50
+ private roleRows;
51
+ private records;
52
+ private warnings;
53
+ }