node-type-registry 0.6.0 → 0.6.2

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.
@@ -355,7 +355,7 @@ export interface RelationManyToManyParams {
355
355
  [key: string]: unknown;
356
356
  };
357
357
  grant_roles?: string[];
358
- grant_privileges?: string[];
358
+ grant_privileges?: string[][];
359
359
  policy_type?: string;
360
360
  policy_privileges?: string[];
361
361
  policy_role?: string;
@@ -425,7 +425,7 @@ export interface BlueprintField {
425
425
  /** An RLS policy entry for a blueprint table. */
426
426
  export interface BlueprintPolicy {
427
427
  /** Authz* policy type name (e.g., "AuthzDirectOwner", "AuthzAllowAll"). */
428
- $type: "AuthzDirectOwner" | "AuthzDirectOwnerAny" | "AuthzMembership" | "AuthzEntityMembership" | "AuthzRelatedEntityMembership" | "AuthzOrgHierarchy" | "AuthzTemporal" | "AuthzPublishable" | "AuthzMemberList" | "AuthzRelatedMemberList" | "AuthzAllowAll" | "AuthzDenyAll" | "AuthzComposite" | "AuthzPeerOwnership" | "AuthzRelatedPeerOwnership";
428
+ policy_type: "AuthzDirectOwner" | "AuthzDirectOwnerAny" | "AuthzMembership" | "AuthzEntityMembership" | "AuthzRelatedEntityMembership" | "AuthzOrgHierarchy" | "AuthzTemporal" | "AuthzPublishable" | "AuthzMemberList" | "AuthzRelatedMemberList" | "AuthzAllowAll" | "AuthzDenyAll" | "AuthzComposite" | "AuthzPeerOwnership" | "AuthzRelatedPeerOwnership";
429
429
  /** Role for this policy. Defaults to "authenticated". */
430
430
  policy_role?: string;
431
431
  /** Whether this policy is permissive (true) or restrictive (false). */
@@ -459,9 +459,9 @@ export interface BlueprintFullTextSearch {
459
459
  export interface BlueprintIndex {
460
460
  /** Reference key of the table this index belongs to. */
461
461
  table_ref: string;
462
- /** Single column name for the index. Mutually exclusive with "columns". */
462
+ /** Single column name for the index. */
463
463
  column?: string;
464
- /** Array of column names for a multi-column index. Mutually exclusive with "column". */
464
+ /** Array of column names for a multi-column index. */
465
465
  columns?: string[];
466
466
  /** Index access method (e.g., "BTREE", "GIN", "GIST", "HNSW", "BM25"). */
467
467
  access_method: string;
@@ -641,7 +641,7 @@ export interface BlueprintTable {
641
641
  policies?: BlueprintPolicy[];
642
642
  /** Database roles to grant privileges to. Defaults to ["authenticated"]. */
643
643
  grant_roles?: string[];
644
- /** Privilege grants as [verb, column] tuples or objects. */
644
+ /** Privilege grants as [verb, column] tuples or objects. Defaults to empty (no grants — callers must explicitly specify). */
645
645
  grants?: unknown[];
646
646
  /** Whether to enable RLS on this table. Defaults to true. */
647
647
  use_rls?: boolean;
@@ -33,7 +33,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
33
33
  ;
34
34
  /**
35
35
  * ===========================================================================
36
- * Static structural types
36
+ * Structural types — Static fallback (no _meta provided)
37
37
  * ===========================================================================
38
38
  */
39
39
  ;
@@ -362,7 +362,7 @@ function buildBlueprintTable() {
362
362
  addJSDoc(optionalProp('fields', t.tsArrayType(t.tsTypeReference(t.identifier('BlueprintField')))), 'Custom fields (columns) to add to the table.'),
363
363
  addJSDoc(optionalProp('policies', t.tsArrayType(t.tsTypeReference(t.identifier('BlueprintPolicy')))), 'RLS policies for this table.'),
364
364
  addJSDoc(optionalProp('grant_roles', t.tsArrayType(t.tsStringKeyword())), 'Database roles to grant privileges to. Defaults to ["authenticated"].'),
365
- addJSDoc(optionalProp('grants', t.tsArrayType(t.tsUnknownKeyword())), 'Privilege grants as [verb, column] tuples or objects.'),
365
+ addJSDoc(optionalProp('grants', t.tsArrayType(t.tsUnknownKeyword())), 'Privilege grants as [verb, column] tuples or objects. Defaults to empty (no grants — callers must explicitly specify).'),
366
366
  addJSDoc(optionalProp('use_rls', t.tsBooleanKeyword()), 'Whether to enable RLS on this table. Defaults to true.'),
367
367
  ]), 'A table definition within a blueprint.');
368
368
  }
@@ -355,7 +355,7 @@ export interface RelationManyToManyParams {
355
355
  [key: string]: unknown;
356
356
  };
357
357
  grant_roles?: string[];
358
- grant_privileges?: string[];
358
+ grant_privileges?: string[][];
359
359
  policy_type?: string;
360
360
  policy_privileges?: string[];
361
361
  policy_role?: string;
@@ -425,7 +425,7 @@ export interface BlueprintField {
425
425
  /** An RLS policy entry for a blueprint table. */
426
426
  export interface BlueprintPolicy {
427
427
  /** Authz* policy type name (e.g., "AuthzDirectOwner", "AuthzAllowAll"). */
428
- $type: "AuthzDirectOwner" | "AuthzDirectOwnerAny" | "AuthzMembership" | "AuthzEntityMembership" | "AuthzRelatedEntityMembership" | "AuthzOrgHierarchy" | "AuthzTemporal" | "AuthzPublishable" | "AuthzMemberList" | "AuthzRelatedMemberList" | "AuthzAllowAll" | "AuthzDenyAll" | "AuthzComposite" | "AuthzPeerOwnership" | "AuthzRelatedPeerOwnership";
428
+ policy_type: "AuthzDirectOwner" | "AuthzDirectOwnerAny" | "AuthzMembership" | "AuthzEntityMembership" | "AuthzRelatedEntityMembership" | "AuthzOrgHierarchy" | "AuthzTemporal" | "AuthzPublishable" | "AuthzMemberList" | "AuthzRelatedMemberList" | "AuthzAllowAll" | "AuthzDenyAll" | "AuthzComposite" | "AuthzPeerOwnership" | "AuthzRelatedPeerOwnership";
429
429
  /** Role for this policy. Defaults to "authenticated". */
430
430
  policy_role?: string;
431
431
  /** Whether this policy is permissive (true) or restrictive (false). */
@@ -459,9 +459,9 @@ export interface BlueprintFullTextSearch {
459
459
  export interface BlueprintIndex {
460
460
  /** Reference key of the table this index belongs to. */
461
461
  table_ref: string;
462
- /** Single column name for the index. Mutually exclusive with "columns". */
462
+ /** Single column name for the index. */
463
463
  column?: string;
464
- /** Array of column names for a multi-column index. Mutually exclusive with "column". */
464
+ /** Array of column names for a multi-column index. */
465
465
  columns?: string[];
466
466
  /** Index access method (e.g., "BTREE", "GIN", "GIST", "HNSW", "BM25"). */
467
467
  access_method: string;
@@ -641,7 +641,7 @@ export interface BlueprintTable {
641
641
  policies?: BlueprintPolicy[];
642
642
  /** Database roles to grant privileges to. Defaults to ["authenticated"]. */
643
643
  grant_roles?: string[];
644
- /** Privilege grants as [verb, column] tuples or objects. */
644
+ /** Privilege grants as [verb, column] tuples or objects. Defaults to empty (no grants — callers must explicitly specify). */
645
645
  grants?: unknown[];
646
646
  /** Whether to enable RLS on this table. Defaults to true. */
647
647
  use_rls?: boolean;
@@ -31,7 +31,7 @@
31
31
  ;
32
32
  /**
33
33
  * ===========================================================================
34
- * Static structural types
34
+ * Structural types — Static fallback (no _meta provided)
35
35
  * ===========================================================================
36
36
  */
37
37
  ;
@@ -327,7 +327,7 @@ function buildBlueprintTable() {
327
327
  addJSDoc(optionalProp('fields', t.tsArrayType(t.tsTypeReference(t.identifier('BlueprintField')))), 'Custom fields (columns) to add to the table.'),
328
328
  addJSDoc(optionalProp('policies', t.tsArrayType(t.tsTypeReference(t.identifier('BlueprintPolicy')))), 'RLS policies for this table.'),
329
329
  addJSDoc(optionalProp('grant_roles', t.tsArrayType(t.tsStringKeyword())), 'Database roles to grant privileges to. Defaults to ["authenticated"].'),
330
- addJSDoc(optionalProp('grants', t.tsArrayType(t.tsUnknownKeyword())), 'Privilege grants as [verb, column] tuples or objects.'),
330
+ addJSDoc(optionalProp('grants', t.tsArrayType(t.tsUnknownKeyword())), 'Privilege grants as [verb, column] tuples or objects. Defaults to empty (no grants — callers must explicitly specify).'),
331
331
  addJSDoc(optionalProp('use_rls', t.tsBooleanKeyword()), 'Whether to enable RLS on this table. Defaults to true.'),
332
332
  ]), 'A table definition within a blueprint.');
333
333
  }
@@ -56,7 +56,13 @@ export const RelationManyToMany = {
56
56
  },
57
57
  "grant_privileges": {
58
58
  "type": "array",
59
- "description": "Privilege grants for the junction table. Forwarded to secure_table_provision as-is. Default: select/insert/delete for all columns"
59
+ "items": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "string"
63
+ }
64
+ },
65
+ "description": "Privilege grants for the junction table as [verb, columns] tuples (e.g. [['select','*'],['insert','*']]). Forwarded to secure_table_provision as-is. Default: select/insert/delete for all columns"
60
66
  },
61
67
  "policy_type": {
62
68
  "type": "string",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-type-registry",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Node type definitions for the Constructive blueprint system. Single source of truth for all Authz*, Data*, Relation*, and View* node types.",
5
5
  "author": "Constructive <developers@constructive.io>",
6
6
  "main": "index.js",
@@ -48,5 +48,5 @@
48
48
  "registry",
49
49
  "graphile"
50
50
  ],
51
- "gitHead": "baae875effd00af36577612c861d0f6f9a1a792a"
51
+ "gitHead": "98b0d29e8937be61d1afde2c6c1fdab74754b1e4"
52
52
  }
@@ -59,7 +59,13 @@ exports.RelationManyToMany = {
59
59
  },
60
60
  "grant_privileges": {
61
61
  "type": "array",
62
- "description": "Privilege grants for the junction table. Forwarded to secure_table_provision as-is. Default: select/insert/delete for all columns"
62
+ "items": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "string"
66
+ }
67
+ },
68
+ "description": "Privilege grants for the junction table as [verb, columns] tuples (e.g. [['select','*'],['insert','*']]). Forwarded to secure_table_provision as-is. Default: select/insert/delete for all columns"
63
69
  },
64
70
  "policy_type": {
65
71
  "type": "string",