node-type-registry 0.35.0 → 0.36.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/blueprint-types.generated.d.ts +7 -1
- package/data/data-composite-field.js +4 -2
- package/data/data-direct-owner.js +5 -0
- package/data/data-entity-membership.js +5 -0
- package/data/data-file-embedding.js +1 -0
- package/data/data-jsonb.js +2 -1
- package/data/data-ownership-in-entity.js +5 -0
- package/data/data-peoplestamps.js +5 -0
- package/data/data-publishable.js +2 -2
- package/data/data-slug.js +3 -4
- package/data/data-tags.js +2 -1
- package/data/search-unified.js +12 -0
- package/esm/blueprint-types.generated.d.ts +7 -1
- package/esm/data/data-composite-field.js +4 -2
- package/esm/data/data-direct-owner.js +5 -0
- package/esm/data/data-entity-membership.js +5 -0
- package/esm/data/data-file-embedding.js +1 -0
- package/esm/data/data-jsonb.js +2 -1
- package/esm/data/data-ownership-in-entity.js +5 -0
- package/esm/data/data-peoplestamps.js +5 -0
- package/esm/data/data-publishable.js +2 -2
- package/esm/data/data-slug.js +3 -4
- package/esm/data/data-tags.js +2 -1
- package/esm/data/search-unified.js +12 -0
- package/package.json +2 -2
|
@@ -66,12 +66,14 @@ export interface DataDirectOwnerParams {
|
|
|
66
66
|
owner_field_name?: string;
|
|
67
67
|
include_id?: boolean;
|
|
68
68
|
include_user_fk?: boolean;
|
|
69
|
+
create_index?: boolean;
|
|
69
70
|
}
|
|
70
71
|
/** Adds entity reference for organization/group scoping. Enables AuthzEntityMembership, AuthzMembership, AuthzOrgHierarchy authorization. */
|
|
71
72
|
export interface DataEntityMembershipParams {
|
|
72
73
|
entity_field_name?: string;
|
|
73
74
|
include_id?: boolean;
|
|
74
75
|
include_user_fk?: boolean;
|
|
76
|
+
create_index?: boolean;
|
|
75
77
|
}
|
|
76
78
|
/** BEFORE INSERT trigger that forces a field to the value of jwt_public.current_user_id(). Prevents clients from spoofing the actor/uploader identity. The field value is always overwritten regardless of what the client provides. */
|
|
77
79
|
export interface DataForceCurrentUserParams {
|
|
@@ -115,6 +117,7 @@ export interface DataOwnershipInEntityParams {
|
|
|
115
117
|
entity_field_name?: string;
|
|
116
118
|
include_id?: boolean;
|
|
117
119
|
include_user_fk?: boolean;
|
|
120
|
+
create_index?: boolean;
|
|
118
121
|
}
|
|
119
122
|
/** Adds user tracking for creates/updates with created_by and updated_by columns. */
|
|
120
123
|
export interface DataPeoplestampsParams {
|
|
@@ -122,6 +125,7 @@ export interface DataPeoplestampsParams {
|
|
|
122
125
|
updated_by_field?: string;
|
|
123
126
|
include_id?: boolean;
|
|
124
127
|
include_user_fk?: boolean;
|
|
128
|
+
create_index?: boolean;
|
|
125
129
|
}
|
|
126
130
|
/** Adds publish state columns (is_published, published_at) for content visibility. Enables AuthzPublishable and AuthzTemporal authorization. */
|
|
127
131
|
export interface DataPublishableParams {
|
|
@@ -136,7 +140,7 @@ export interface DataRealtimeParams {
|
|
|
136
140
|
}
|
|
137
141
|
/** Auto-generates URL-friendly slugs from field values on insert/update. Attaches BEFORE INSERT and BEFORE UPDATE triggers that call inflection.slugify() on the target field. References fields by name in data jsonb. */
|
|
138
142
|
export interface DataSlugParams {
|
|
139
|
-
field_name
|
|
143
|
+
field_name?: string;
|
|
140
144
|
source_field_name?: string;
|
|
141
145
|
}
|
|
142
146
|
/** Adds soft delete support with deleted_at and is_deleted columns. */
|
|
@@ -271,6 +275,8 @@ export interface SearchUnifiedParams {
|
|
|
271
275
|
chunking_task_name?: string;
|
|
272
276
|
};
|
|
273
277
|
};
|
|
278
|
+
embedding_text_field?: string;
|
|
279
|
+
composite_format?: 'labeled' | 'plain';
|
|
274
280
|
trgm_fields?: string[];
|
|
275
281
|
search_config?: {
|
|
276
282
|
weights?: {
|
|
@@ -13,7 +13,8 @@ exports.DataCompositeField = {
|
|
|
13
13
|
target: {
|
|
14
14
|
type: 'string',
|
|
15
15
|
format: 'column-ref',
|
|
16
|
-
description:
|
|
16
|
+
description: 'Name of the derived text field to create',
|
|
17
|
+
default: 'embedding_text'
|
|
17
18
|
},
|
|
18
19
|
source_fields: {
|
|
19
20
|
type: 'array',
|
|
@@ -26,7 +27,8 @@ exports.DataCompositeField = {
|
|
|
26
27
|
format: {
|
|
27
28
|
type: 'string',
|
|
28
29
|
enum: ['labeled', 'plain'],
|
|
29
|
-
description: "Output format: 'labeled' (field_name: value) or 'plain' (values only)
|
|
30
|
+
description: "Output format: 'labeled' (field_name: value) or 'plain' (values only)",
|
|
31
|
+
default: 'labeled'
|
|
30
32
|
}
|
|
31
33
|
},
|
|
32
34
|
required: [
|
|
@@ -25,6 +25,11 @@ exports.DataDirectOwner = {
|
|
|
25
25
|
type: 'boolean',
|
|
26
26
|
description: 'If true, adds a foreign key constraint from owner_id to the users table',
|
|
27
27
|
default: true
|
|
28
|
+
},
|
|
29
|
+
create_index: {
|
|
30
|
+
type: 'boolean',
|
|
31
|
+
description: 'If true, creates a B-tree index on the owner column',
|
|
32
|
+
default: true
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
},
|
|
@@ -25,6 +25,11 @@ exports.DataEntityMembership = {
|
|
|
25
25
|
type: 'boolean',
|
|
26
26
|
description: 'If true, adds a foreign key constraint from entity_id to the users table',
|
|
27
27
|
default: true
|
|
28
|
+
},
|
|
29
|
+
create_index: {
|
|
30
|
+
type: 'boolean',
|
|
31
|
+
description: 'If true, creates a B-tree index on the entity column',
|
|
32
|
+
default: true
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
},
|
|
@@ -121,6 +121,7 @@ exports.ProcessFileEmbedding = {
|
|
|
121
121
|
description: 'Chunking configuration passed through to ProcessChunks. When ' +
|
|
122
122
|
'include_chunks is true (or defaults to true in extract mode), these ' +
|
|
123
123
|
'params configure the chunks table, embedding dimensions, strategy, etc.',
|
|
124
|
+
default: {},
|
|
124
125
|
properties: {
|
|
125
126
|
content_field_name: {
|
|
126
127
|
type: 'string',
|
package/data/data-jsonb.js
CHANGED
|
@@ -31,6 +31,11 @@ exports.DataOwnershipInEntity = {
|
|
|
31
31
|
type: 'boolean',
|
|
32
32
|
description: 'If true, adds foreign key constraints from owner_id and entity_id to the users table',
|
|
33
33
|
default: true
|
|
34
|
+
},
|
|
35
|
+
create_index: {
|
|
36
|
+
type: 'boolean',
|
|
37
|
+
description: 'If true, creates B-tree indexes on the owner and entity columns',
|
|
38
|
+
default: true
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
},
|
|
@@ -31,6 +31,11 @@ exports.DataPeoplestamps = {
|
|
|
31
31
|
type: 'boolean',
|
|
32
32
|
description: 'If true, adds foreign key constraints from created_by and updated_by to the users table',
|
|
33
33
|
default: false
|
|
34
|
+
},
|
|
35
|
+
create_index: {
|
|
36
|
+
type: 'boolean',
|
|
37
|
+
description: 'If true, creates B-tree indexes on the peoplestamp columns',
|
|
38
|
+
default: true
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
},
|
package/data/data-publishable.js
CHANGED
|
@@ -10,13 +10,13 @@ exports.DataPublishable = {
|
|
|
10
10
|
parameter_schema: {
|
|
11
11
|
type: 'object',
|
|
12
12
|
properties: {
|
|
13
|
-
|
|
13
|
+
is_published_field_name: {
|
|
14
14
|
type: 'string',
|
|
15
15
|
format: 'column-ref',
|
|
16
16
|
description: 'Column name for the published boolean flag',
|
|
17
17
|
default: 'is_published'
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
published_at_field_name: {
|
|
20
20
|
type: 'string',
|
|
21
21
|
format: 'column-ref',
|
|
22
22
|
description: 'Column name for the publish timestamp',
|
package/data/data-slug.js
CHANGED
|
@@ -13,7 +13,8 @@ exports.DataSlug = {
|
|
|
13
13
|
field_name: {
|
|
14
14
|
type: 'string',
|
|
15
15
|
format: 'column-ref',
|
|
16
|
-
description: 'Name of the field to slugify'
|
|
16
|
+
description: 'Name of the field to slugify',
|
|
17
|
+
default: 'slug'
|
|
17
18
|
},
|
|
18
19
|
source_field_name: {
|
|
19
20
|
type: 'string',
|
|
@@ -21,9 +22,7 @@ exports.DataSlug = {
|
|
|
21
22
|
description: 'Optional source field name (defaults to field_name)'
|
|
22
23
|
}
|
|
23
24
|
},
|
|
24
|
-
required: [
|
|
25
|
-
'field_name'
|
|
26
|
-
]
|
|
25
|
+
required: []
|
|
27
26
|
},
|
|
28
27
|
tags: [
|
|
29
28
|
'transform',
|
package/data/data-tags.js
CHANGED
|
@@ -18,7 +18,8 @@ exports.DataTags = {
|
|
|
18
18
|
},
|
|
19
19
|
default_value: {
|
|
20
20
|
type: 'string',
|
|
21
|
-
description: 'Default value expression for the tags column'
|
|
21
|
+
description: 'Default value expression for the tags column',
|
|
22
|
+
default: 'ARRAY[]::citext[]'
|
|
22
23
|
},
|
|
23
24
|
is_required: {
|
|
24
25
|
type: 'boolean',
|
package/data/search-unified.js
CHANGED
|
@@ -164,6 +164,18 @@ exports.SearchUnified = {
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
},
|
|
167
|
+
embedding_text_field: {
|
|
168
|
+
type: 'string',
|
|
169
|
+
format: 'column-ref',
|
|
170
|
+
description: 'Name of the composite text field created for embedding input',
|
|
171
|
+
default: 'embedding_text'
|
|
172
|
+
},
|
|
173
|
+
composite_format: {
|
|
174
|
+
type: 'string',
|
|
175
|
+
enum: ['labeled', 'plain'],
|
|
176
|
+
description: 'Output format for the composite text field',
|
|
177
|
+
default: 'labeled'
|
|
178
|
+
},
|
|
167
179
|
trgm_fields: {
|
|
168
180
|
type: 'array',
|
|
169
181
|
items: {
|
|
@@ -66,12 +66,14 @@ export interface DataDirectOwnerParams {
|
|
|
66
66
|
owner_field_name?: string;
|
|
67
67
|
include_id?: boolean;
|
|
68
68
|
include_user_fk?: boolean;
|
|
69
|
+
create_index?: boolean;
|
|
69
70
|
}
|
|
70
71
|
/** Adds entity reference for organization/group scoping. Enables AuthzEntityMembership, AuthzMembership, AuthzOrgHierarchy authorization. */
|
|
71
72
|
export interface DataEntityMembershipParams {
|
|
72
73
|
entity_field_name?: string;
|
|
73
74
|
include_id?: boolean;
|
|
74
75
|
include_user_fk?: boolean;
|
|
76
|
+
create_index?: boolean;
|
|
75
77
|
}
|
|
76
78
|
/** BEFORE INSERT trigger that forces a field to the value of jwt_public.current_user_id(). Prevents clients from spoofing the actor/uploader identity. The field value is always overwritten regardless of what the client provides. */
|
|
77
79
|
export interface DataForceCurrentUserParams {
|
|
@@ -115,6 +117,7 @@ export interface DataOwnershipInEntityParams {
|
|
|
115
117
|
entity_field_name?: string;
|
|
116
118
|
include_id?: boolean;
|
|
117
119
|
include_user_fk?: boolean;
|
|
120
|
+
create_index?: boolean;
|
|
118
121
|
}
|
|
119
122
|
/** Adds user tracking for creates/updates with created_by and updated_by columns. */
|
|
120
123
|
export interface DataPeoplestampsParams {
|
|
@@ -122,6 +125,7 @@ export interface DataPeoplestampsParams {
|
|
|
122
125
|
updated_by_field?: string;
|
|
123
126
|
include_id?: boolean;
|
|
124
127
|
include_user_fk?: boolean;
|
|
128
|
+
create_index?: boolean;
|
|
125
129
|
}
|
|
126
130
|
/** Adds publish state columns (is_published, published_at) for content visibility. Enables AuthzPublishable and AuthzTemporal authorization. */
|
|
127
131
|
export interface DataPublishableParams {
|
|
@@ -136,7 +140,7 @@ export interface DataRealtimeParams {
|
|
|
136
140
|
}
|
|
137
141
|
/** Auto-generates URL-friendly slugs from field values on insert/update. Attaches BEFORE INSERT and BEFORE UPDATE triggers that call inflection.slugify() on the target field. References fields by name in data jsonb. */
|
|
138
142
|
export interface DataSlugParams {
|
|
139
|
-
field_name
|
|
143
|
+
field_name?: string;
|
|
140
144
|
source_field_name?: string;
|
|
141
145
|
}
|
|
142
146
|
/** Adds soft delete support with deleted_at and is_deleted columns. */
|
|
@@ -271,6 +275,8 @@ export interface SearchUnifiedParams {
|
|
|
271
275
|
chunking_task_name?: string;
|
|
272
276
|
};
|
|
273
277
|
};
|
|
278
|
+
embedding_text_field?: string;
|
|
279
|
+
composite_format?: 'labeled' | 'plain';
|
|
274
280
|
trgm_fields?: string[];
|
|
275
281
|
search_config?: {
|
|
276
282
|
weights?: {
|
|
@@ -10,7 +10,8 @@ export const DataCompositeField = {
|
|
|
10
10
|
target: {
|
|
11
11
|
type: 'string',
|
|
12
12
|
format: 'column-ref',
|
|
13
|
-
description:
|
|
13
|
+
description: 'Name of the derived text field to create',
|
|
14
|
+
default: 'embedding_text'
|
|
14
15
|
},
|
|
15
16
|
source_fields: {
|
|
16
17
|
type: 'array',
|
|
@@ -23,7 +24,8 @@ export const DataCompositeField = {
|
|
|
23
24
|
format: {
|
|
24
25
|
type: 'string',
|
|
25
26
|
enum: ['labeled', 'plain'],
|
|
26
|
-
description: "Output format: 'labeled' (field_name: value) or 'plain' (values only)
|
|
27
|
+
description: "Output format: 'labeled' (field_name: value) or 'plain' (values only)",
|
|
28
|
+
default: 'labeled'
|
|
27
29
|
}
|
|
28
30
|
},
|
|
29
31
|
required: [
|
|
@@ -22,6 +22,11 @@ export const DataDirectOwner = {
|
|
|
22
22
|
type: 'boolean',
|
|
23
23
|
description: 'If true, adds a foreign key constraint from owner_id to the users table',
|
|
24
24
|
default: true
|
|
25
|
+
},
|
|
26
|
+
create_index: {
|
|
27
|
+
type: 'boolean',
|
|
28
|
+
description: 'If true, creates a B-tree index on the owner column',
|
|
29
|
+
default: true
|
|
25
30
|
}
|
|
26
31
|
}
|
|
27
32
|
},
|
|
@@ -22,6 +22,11 @@ export const DataEntityMembership = {
|
|
|
22
22
|
type: 'boolean',
|
|
23
23
|
description: 'If true, adds a foreign key constraint from entity_id to the users table',
|
|
24
24
|
default: true
|
|
25
|
+
},
|
|
26
|
+
create_index: {
|
|
27
|
+
type: 'boolean',
|
|
28
|
+
description: 'If true, creates a B-tree index on the entity column',
|
|
29
|
+
default: true
|
|
25
30
|
}
|
|
26
31
|
}
|
|
27
32
|
},
|
|
@@ -118,6 +118,7 @@ export const ProcessFileEmbedding = {
|
|
|
118
118
|
description: 'Chunking configuration passed through to ProcessChunks. When ' +
|
|
119
119
|
'include_chunks is true (or defaults to true in extract mode), these ' +
|
|
120
120
|
'params configure the chunks table, embedding dimensions, strategy, etc.',
|
|
121
|
+
default: {},
|
|
121
122
|
properties: {
|
|
122
123
|
content_field_name: {
|
|
123
124
|
type: 'string',
|
package/esm/data/data-jsonb.js
CHANGED
|
@@ -28,6 +28,11 @@ export const DataOwnershipInEntity = {
|
|
|
28
28
|
type: 'boolean',
|
|
29
29
|
description: 'If true, adds foreign key constraints from owner_id and entity_id to the users table',
|
|
30
30
|
default: true
|
|
31
|
+
},
|
|
32
|
+
create_index: {
|
|
33
|
+
type: 'boolean',
|
|
34
|
+
description: 'If true, creates B-tree indexes on the owner and entity columns',
|
|
35
|
+
default: true
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
},
|
|
@@ -28,6 +28,11 @@ export const DataPeoplestamps = {
|
|
|
28
28
|
type: 'boolean',
|
|
29
29
|
description: 'If true, adds foreign key constraints from created_by and updated_by to the users table',
|
|
30
30
|
default: false
|
|
31
|
+
},
|
|
32
|
+
create_index: {
|
|
33
|
+
type: 'boolean',
|
|
34
|
+
description: 'If true, creates B-tree indexes on the peoplestamp columns',
|
|
35
|
+
default: true
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
},
|
|
@@ -7,13 +7,13 @@ export const DataPublishable = {
|
|
|
7
7
|
parameter_schema: {
|
|
8
8
|
type: 'object',
|
|
9
9
|
properties: {
|
|
10
|
-
|
|
10
|
+
is_published_field_name: {
|
|
11
11
|
type: 'string',
|
|
12
12
|
format: 'column-ref',
|
|
13
13
|
description: 'Column name for the published boolean flag',
|
|
14
14
|
default: 'is_published'
|
|
15
15
|
},
|
|
16
|
-
|
|
16
|
+
published_at_field_name: {
|
|
17
17
|
type: 'string',
|
|
18
18
|
format: 'column-ref',
|
|
19
19
|
description: 'Column name for the publish timestamp',
|
package/esm/data/data-slug.js
CHANGED
|
@@ -10,7 +10,8 @@ export const DataSlug = {
|
|
|
10
10
|
field_name: {
|
|
11
11
|
type: 'string',
|
|
12
12
|
format: 'column-ref',
|
|
13
|
-
description: 'Name of the field to slugify'
|
|
13
|
+
description: 'Name of the field to slugify',
|
|
14
|
+
default: 'slug'
|
|
14
15
|
},
|
|
15
16
|
source_field_name: {
|
|
16
17
|
type: 'string',
|
|
@@ -18,9 +19,7 @@ export const DataSlug = {
|
|
|
18
19
|
description: 'Optional source field name (defaults to field_name)'
|
|
19
20
|
}
|
|
20
21
|
},
|
|
21
|
-
required: [
|
|
22
|
-
'field_name'
|
|
23
|
-
]
|
|
22
|
+
required: []
|
|
24
23
|
},
|
|
25
24
|
tags: [
|
|
26
25
|
'transform',
|
package/esm/data/data-tags.js
CHANGED
|
@@ -15,7 +15,8 @@ export const DataTags = {
|
|
|
15
15
|
},
|
|
16
16
|
default_value: {
|
|
17
17
|
type: 'string',
|
|
18
|
-
description: 'Default value expression for the tags column'
|
|
18
|
+
description: 'Default value expression for the tags column',
|
|
19
|
+
default: 'ARRAY[]::citext[]'
|
|
19
20
|
},
|
|
20
21
|
is_required: {
|
|
21
22
|
type: 'boolean',
|
|
@@ -161,6 +161,18 @@ export const SearchUnified = {
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
},
|
|
164
|
+
embedding_text_field: {
|
|
165
|
+
type: 'string',
|
|
166
|
+
format: 'column-ref',
|
|
167
|
+
description: 'Name of the composite text field created for embedding input',
|
|
168
|
+
default: 'embedding_text'
|
|
169
|
+
},
|
|
170
|
+
composite_format: {
|
|
171
|
+
type: 'string',
|
|
172
|
+
enum: ['labeled', 'plain'],
|
|
173
|
+
description: 'Output format for the composite text field',
|
|
174
|
+
default: 'labeled'
|
|
175
|
+
},
|
|
164
176
|
trgm_fields: {
|
|
165
177
|
type: 'array',
|
|
166
178
|
items: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-type-registry",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
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",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"registry",
|
|
48
48
|
"graphile"
|
|
49
49
|
],
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "79f9109e05713e24fbef527864e0df02634aa891"
|
|
51
51
|
}
|