node-type-registry 0.2.1 → 0.3.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/authz/authz-allow-all.js +9 -7
- package/authz/authz-composite.js +10 -7
- package/authz/authz-deny-all.js +9 -7
- package/authz/authz-direct-owner-any.js +10 -7
- package/authz/authz-direct-owner.js +10 -7
- package/authz/authz-entity-membership.js +10 -7
- package/authz/authz-member-list.js +10 -7
- package/authz/authz-membership-check.js +10 -7
- package/authz/authz-org-hierarchy.js +11 -7
- package/authz/authz-peer-ownership.js +11 -7
- package/authz/authz-publishable.js +11 -7
- package/authz/authz-related-entity-membership.js +10 -7
- package/authz/authz-related-member-list.js +10 -7
- package/authz/authz-related-peer-ownership.js +11 -7
- package/authz/authz-temporal.js +10 -7
- package/data/data-bm25.js +11 -7
- package/data/data-direct-owner.js +10 -7
- package/data/data-embedding.js +12 -7
- package/data/data-entity-membership.js +10 -7
- package/data/data-force-current-user.d.ts +2 -0
- package/data/data-force-current-user.js +25 -0
- package/data/data-full-text-search.js +12 -7
- package/data/data-id.js +10 -7
- package/data/data-immutable-fields.d.ts +2 -0
- package/data/data-immutable-fields.js +30 -0
- package/data/data-inflection.d.ts +2 -0
- package/data/data-inflection.js +45 -0
- package/data/data-inherit-from-parent.d.ts +2 -0
- package/data/data-inherit-from-parent.js +43 -0
- package/data/data-job-trigger.js +11 -7
- package/data/data-jsonb.js +10 -7
- package/data/data-owned-fields.d.ts +2 -0
- package/data/data-owned-fields.js +35 -0
- package/data/data-ownership-in-entity.js +12 -7
- package/data/data-peoplestamps.js +10 -7
- package/data/data-postgis-aggregate.js +13 -7
- package/data/data-postgis.js +12 -7
- package/data/data-publishable.js +11 -7
- package/data/data-search.js +11 -7
- package/{field/field-slug.d.ts → data/data-slug.d.ts} +1 -1
- package/data/data-slug.js +30 -0
- package/data/data-soft-delete.js +9 -7
- package/data/data-status-field.js +10 -7
- package/data/data-tags.js +10 -7
- package/data/data-timestamps.js +10 -7
- package/data/data-trgm.js +11 -7
- package/data/index.d.ts +9 -0
- package/data/index.js +19 -1
- package/data/table-organization-settings.js +20 -0
- package/data/table-user-profiles.js +20 -0
- package/data/table-user-settings.js +20 -0
- package/esm/authz/authz-allow-all.js +9 -7
- package/esm/authz/authz-composite.js +10 -7
- package/esm/authz/authz-deny-all.js +9 -7
- package/esm/authz/authz-direct-owner-any.js +10 -7
- package/esm/authz/authz-direct-owner.js +10 -7
- package/esm/authz/authz-entity-membership.js +10 -7
- package/esm/authz/authz-member-list.js +10 -7
- package/esm/authz/authz-membership-check.js +10 -7
- package/esm/authz/authz-org-hierarchy.js +11 -7
- package/esm/authz/authz-peer-ownership.js +11 -7
- package/esm/authz/authz-publishable.js +11 -7
- package/esm/authz/authz-related-entity-membership.js +10 -7
- package/esm/authz/authz-related-member-list.js +10 -7
- package/esm/authz/authz-related-peer-ownership.js +11 -7
- package/esm/authz/authz-temporal.js +10 -7
- package/esm/data/data-bm25.js +11 -7
- package/esm/data/data-direct-owner.js +10 -7
- package/esm/data/data-embedding.js +12 -7
- package/esm/data/data-entity-membership.js +10 -7
- package/esm/data/data-force-current-user.d.ts +2 -0
- package/esm/data/data-force-current-user.js +22 -0
- package/esm/data/data-full-text-search.js +12 -7
- package/esm/data/data-id.js +10 -7
- package/esm/data/data-immutable-fields.d.ts +2 -0
- package/esm/data/data-immutable-fields.js +27 -0
- package/esm/data/data-inflection.d.ts +2 -0
- package/esm/data/data-inflection.js +42 -0
- package/esm/data/data-inherit-from-parent.d.ts +2 -0
- package/esm/data/data-inherit-from-parent.js +40 -0
- package/esm/data/data-job-trigger.js +11 -7
- package/esm/data/data-jsonb.js +10 -7
- package/esm/data/data-owned-fields.d.ts +2 -0
- package/esm/data/data-owned-fields.js +32 -0
- package/esm/data/data-ownership-in-entity.js +12 -7
- package/esm/data/data-peoplestamps.js +10 -7
- package/esm/data/data-postgis-aggregate.js +13 -7
- package/esm/data/data-postgis.js +12 -7
- package/esm/data/data-publishable.js +11 -7
- package/esm/data/data-search.js +11 -7
- package/esm/{field/field-slug.d.ts → data/data-slug.d.ts} +1 -1
- package/esm/data/data-slug.js +27 -0
- package/esm/data/data-soft-delete.js +9 -7
- package/esm/data/data-status-field.js +10 -7
- package/esm/data/data-tags.js +10 -7
- package/esm/data/data-timestamps.js +10 -7
- package/esm/data/data-trgm.js +11 -7
- package/esm/data/index.d.ts +9 -0
- package/esm/data/index.js +9 -0
- package/esm/data/table-organization-settings.js +17 -0
- package/esm/data/table-user-profiles.js +17 -0
- package/esm/data/table-user-settings.js +17 -0
- package/esm/index.d.ts +0 -2
- package/esm/index.js +0 -7
- package/esm/relation/relation-belongs-to.js +11 -7
- package/esm/relation/relation-has-many.js +12 -7
- package/esm/relation/relation-has-one.js +12 -7
- package/esm/relation/relation-many-to-many.js +12 -7
- package/esm/view/view-aggregated.js +11 -7
- package/esm/view/view-composite.js +12 -7
- package/esm/view/view-filtered-table.js +11 -7
- package/esm/view/view-joined-tables.js +10 -7
- package/esm/view/view-table-projection.js +10 -7
- package/index.d.ts +0 -2
- package/index.js +0 -7
- package/package.json +4 -4
- package/relation/relation-belongs-to.js +11 -7
- package/relation/relation-has-many.js +12 -7
- package/relation/relation-has-one.js +12 -7
- package/relation/relation-many-to-many.js +12 -7
- package/view/view-aggregated.js +11 -7
- package/view/view-composite.js +12 -7
- package/view/view-filtered-table.js +11 -7
- package/view/view-joined-tables.js +10 -7
- package/view/view-table-projection.js +10 -7
- package/esm/field/field-immutable.d.ts +0 -2
- package/esm/field/field-immutable.js +0 -21
- package/esm/field/field-inflection.d.ts +0 -2
- package/esm/field/field-inflection.js +0 -29
- package/esm/field/field-owned.d.ts +0 -2
- package/esm/field/field-owned.js +0 -36
- package/esm/field/field-slug.js +0 -26
- package/esm/field/index.d.ts +0 -4
- package/esm/field/index.js +0 -4
- package/esm/table/index.d.ts +0 -3
- package/esm/table/index.js +0 -3
- package/esm/table/table-organization-settings.js +0 -12
- package/esm/table/table-user-profiles.js +0 -12
- package/esm/table/table-user-settings.js +0 -12
- package/field/field-immutable.d.ts +0 -2
- package/field/field-immutable.js +0 -24
- package/field/field-inflection.d.ts +0 -2
- package/field/field-inflection.js +0 -32
- package/field/field-owned.d.ts +0 -2
- package/field/field-owned.js +0 -39
- package/field/field-slug.js +0 -29
- package/field/index.d.ts +0 -4
- package/field/index.js +0 -11
- package/table/index.d.ts +0 -3
- package/table/index.js +0 -9
- package/table/table-organization-settings.js +0 -15
- package/table/table-user-profiles.js +0 -15
- package/table/table-user-settings.js +0 -15
- /package/{esm/table → data}/table-organization-settings.d.ts +0 -0
- /package/{esm/table → data}/table-user-profiles.d.ts +0 -0
- /package/{esm/table → data}/table-user-settings.d.ts +0 -0
- /package/{table → esm/data}/table-organization-settings.d.ts +0 -0
- /package/{table → esm/data}/table-user-profiles.d.ts +0 -0
- /package/{table → esm/data}/table-user-settings.d.ts +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const DataForceCurrentUser = {
|
|
2
|
+
"name": "DataForceCurrentUser",
|
|
3
|
+
"slug": "data_force_current_user",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Force Current User",
|
|
6
|
+
"description": "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.",
|
|
7
|
+
"parameter_schema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"field_name": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Name of the field to force to current_user_id()",
|
|
13
|
+
"default": "actor_id"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"tags": [
|
|
18
|
+
"trigger",
|
|
19
|
+
"security",
|
|
20
|
+
"schema"
|
|
21
|
+
]
|
|
22
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataFullTextSearch = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataFullTextSearch",
|
|
3
|
+
"slug": "data_full_text_search",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Full-Text Search",
|
|
6
|
+
"description": "Adds a tsvector column with GIN index and automatic trigger population from source fields. Enables PostgreSQL full-text search with configurable weights and language support. Leverages the existing metaschema full_text_search infrastructure.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"field_name": {
|
|
@@ -54,5 +54,10 @@ export const DataFullTextSearch = {
|
|
|
54
54
|
"source_fields"
|
|
55
55
|
]
|
|
56
56
|
},
|
|
57
|
-
tags: [
|
|
57
|
+
"tags": [
|
|
58
|
+
"search",
|
|
59
|
+
"fts",
|
|
60
|
+
"tsvector",
|
|
61
|
+
"schema"
|
|
62
|
+
]
|
|
58
63
|
};
|
package/esm/data/data-id.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataId = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataId",
|
|
3
|
+
"slug": "data_id",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Primary Key ID",
|
|
6
|
+
"description": "Adds a UUID primary key column with auto-generation default (uuidv7). This is the standard primary key pattern for all tables.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"field_name": {
|
|
@@ -14,5 +14,8 @@ export const DataId = {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
-
tags: [
|
|
17
|
+
"tags": [
|
|
18
|
+
"primary_key",
|
|
19
|
+
"schema"
|
|
20
|
+
]
|
|
18
21
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const DataImmutableFields = {
|
|
2
|
+
"name": "DataImmutableFields",
|
|
3
|
+
"slug": "data_immutable_fields",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Immutable Fields",
|
|
6
|
+
"description": "BEFORE UPDATE trigger that prevents changes to a list of specified fields after INSERT. Raises an exception if any of the listed fields have changed. Unlike FieldImmutable (single-field), this handles multiple fields in a single trigger for efficiency.",
|
|
7
|
+
"parameter_schema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"fields": {
|
|
11
|
+
"type": "array",
|
|
12
|
+
"items": {
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"description": "Field names that cannot be modified after INSERT (e.g. [\"key\", \"bucket_id\", \"owner_id\"])"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": [
|
|
19
|
+
"fields"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"tags": [
|
|
23
|
+
"trigger",
|
|
24
|
+
"constraint",
|
|
25
|
+
"schema"
|
|
26
|
+
]
|
|
27
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export const DataInflection = {
|
|
2
|
+
"name": "DataInflection",
|
|
3
|
+
"slug": "data_inflection",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Inflection",
|
|
6
|
+
"description": "Transforms field values using inflection operations (snake_case, camelCase, slugify, plural, singular, etc). Attaches BEFORE INSERT and BEFORE UPDATE triggers. References fields by name in data jsonb.",
|
|
7
|
+
"parameter_schema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"field_name": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Name of the field to transform"
|
|
13
|
+
},
|
|
14
|
+
"ops": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": [
|
|
19
|
+
"plural",
|
|
20
|
+
"singular",
|
|
21
|
+
"camel",
|
|
22
|
+
"pascal",
|
|
23
|
+
"dashed",
|
|
24
|
+
"slugify",
|
|
25
|
+
"underscore",
|
|
26
|
+
"lower",
|
|
27
|
+
"upper"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"description": "Inflection operations to apply in order"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"required": [
|
|
34
|
+
"field_name",
|
|
35
|
+
"ops"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"tags": [
|
|
39
|
+
"transform",
|
|
40
|
+
"behavior"
|
|
41
|
+
]
|
|
42
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export const DataInheritFromParent = {
|
|
2
|
+
"name": "DataInheritFromParent",
|
|
3
|
+
"slug": "data_inherit_from_parent",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Inherit From Parent",
|
|
6
|
+
"description": "BEFORE INSERT trigger that copies specified fields from a parent table via a foreign key. The parent row is looked up through RLS (SECURITY INVOKER), so the insert fails if the caller cannot see the parent. Used by the storage module to inherit owner_id and is_public from buckets to files.",
|
|
7
|
+
"parameter_schema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"parent_fk_field": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Name of the FK field on this table that references the parent (e.g. bucket_id)"
|
|
13
|
+
},
|
|
14
|
+
"fields": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"description": "Field names to copy from the parent row (e.g. [\"owner_id\", \"is_public\"])"
|
|
20
|
+
},
|
|
21
|
+
"parent_table": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Parent table name (optional fallback if FK not yet registered in metaschema)"
|
|
24
|
+
},
|
|
25
|
+
"parent_schema": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Parent table schema (optional, defaults to same schema as child table)"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"required": [
|
|
31
|
+
"parent_fk_field",
|
|
32
|
+
"fields"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"tags": [
|
|
36
|
+
"trigger",
|
|
37
|
+
"inheritance",
|
|
38
|
+
"schema"
|
|
39
|
+
]
|
|
40
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataJobTrigger = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataJobTrigger",
|
|
3
|
+
"slug": "data_job_trigger",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Job Trigger",
|
|
6
|
+
"description": "Dynamically creates PostgreSQL triggers that enqueue jobs via app_jobs.add_job() when table rows are inserted, updated, or deleted. Supports configurable payload strategies (full row, row ID, selected fields, or custom mapping), conditional firing via WHEN clauses, watched field changes, and extended job options (queue, priority, delay, max attempts).",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"task_identifier": {
|
|
@@ -104,5 +104,9 @@ export const DataJobTrigger = {
|
|
|
104
104
|
"task_identifier"
|
|
105
105
|
]
|
|
106
106
|
},
|
|
107
|
-
tags: [
|
|
107
|
+
"tags": [
|
|
108
|
+
"jobs",
|
|
109
|
+
"triggers",
|
|
110
|
+
"async"
|
|
111
|
+
]
|
|
108
112
|
};
|
package/esm/data/data-jsonb.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataJsonb = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataJsonb",
|
|
3
|
+
"slug": "data_jsonb",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "JSONB Field",
|
|
6
|
+
"description": "Adds a JSONB column with optional GIN index for containment queries (@>, ?, ?|, ?&). Standard pattern for semi-structured metadata.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"field_name": {
|
|
@@ -28,5 +28,8 @@ export const DataJsonb = {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
-
tags: [
|
|
31
|
+
"tags": [
|
|
32
|
+
"jsonb",
|
|
33
|
+
"schema"
|
|
34
|
+
]
|
|
32
35
|
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const DataOwnedFields = {
|
|
2
|
+
"name": "DataOwnedFields",
|
|
3
|
+
"slug": "data_owned_fields",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Owned Fields",
|
|
6
|
+
"description": "Restricts which user can modify specific columns in shared objects. Creates an AFTER UPDATE trigger that throws OWNED_PROPS when a non-owner tries to change protected fields. References fields by name in data jsonb.",
|
|
7
|
+
"parameter_schema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"role_key_field_name": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Name of the field identifying the owner (e.g. sender_id)"
|
|
13
|
+
},
|
|
14
|
+
"protected_field_names": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"description": "Names of fields only this owner can modify"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"required": [
|
|
23
|
+
"role_key_field_name",
|
|
24
|
+
"protected_field_names"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"tags": [
|
|
28
|
+
"ownership",
|
|
29
|
+
"constraint",
|
|
30
|
+
"behavior"
|
|
31
|
+
]
|
|
32
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataOwnershipInEntity = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataOwnershipInEntity",
|
|
3
|
+
"slug": "data_ownership_in_entity",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Ownership In Entity",
|
|
6
|
+
"description": "Combines direct ownership with entity scoping. Adds both owner_id and entity_id columns. Enables AuthzDirectOwner, AuthzEntityMembership, and AuthzOrgHierarchy authorization. Particularly useful for OrgHierarchy where a user owns a row (owner_id) within an entity (entity_id), and managers above can see subordinate-owned records via the hierarchy closure table.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"include_id": {
|
|
@@ -19,5 +19,10 @@ export const DataOwnershipInEntity = {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
-
tags: [
|
|
22
|
+
"tags": [
|
|
23
|
+
"ownership",
|
|
24
|
+
"membership",
|
|
25
|
+
"hierarchy",
|
|
26
|
+
"schema"
|
|
27
|
+
]
|
|
23
28
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataPeoplestamps = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataPeoplestamps",
|
|
3
|
+
"slug": "data_peoplestamps",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Peoplestamps",
|
|
6
|
+
"description": "Adds user tracking for creates/updates with created_by and updated_by columns.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"include_id": {
|
|
@@ -19,5 +19,8 @@ export const DataPeoplestamps = {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
-
tags: [
|
|
22
|
+
"tags": [
|
|
23
|
+
"timestamps",
|
|
24
|
+
"schema"
|
|
25
|
+
]
|
|
23
26
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataPostGISAggregate = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataPostGISAggregate",
|
|
3
|
+
"slug": "data_postgis_aggregate",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "PostGIS Aggregate Geometry",
|
|
6
|
+
"description": "Creates a derived/materialized geometry field on the parent table that automatically aggregates geometries from a source (child) table via triggers. When child rows are inserted/updated/deleted, the parent aggregate field is recalculated using the specified PostGIS aggregation function (ST_Union, ST_Collect, ST_ConvexHull, ST_ConcaveHull). Useful for materializing spatial boundaries from collections of points or polygons.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"field_name": {
|
|
@@ -87,5 +87,11 @@ export const DataPostGISAggregate = {
|
|
|
87
87
|
"source_fk_field"
|
|
88
88
|
]
|
|
89
89
|
},
|
|
90
|
-
tags: [
|
|
90
|
+
"tags": [
|
|
91
|
+
"spatial",
|
|
92
|
+
"postgis",
|
|
93
|
+
"geometry",
|
|
94
|
+
"aggregate",
|
|
95
|
+
"schema"
|
|
96
|
+
]
|
|
91
97
|
};
|
package/esm/data/data-postgis.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataPostGIS = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataPostGIS",
|
|
3
|
+
"slug": "data_postgis",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "PostGIS Geometry",
|
|
6
|
+
"description": "Adds a PostGIS geometry or geography column with a spatial index (GiST or SP-GiST). Supports configurable geometry types (Point, Polygon, etc.), SRID, and dimensionality. The graphile-postgis plugin auto-detects geometry/geography columns by codec type for spatial filtering (ST_Contains, ST_DWithin, bbox operators).",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"field_name": {
|
|
@@ -58,5 +58,10 @@ export const DataPostGIS = {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
|
-
tags: [
|
|
61
|
+
"tags": [
|
|
62
|
+
"spatial",
|
|
63
|
+
"postgis",
|
|
64
|
+
"geometry",
|
|
65
|
+
"schema"
|
|
66
|
+
]
|
|
62
67
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataPublishable = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataPublishable",
|
|
3
|
+
"slug": "data_publishable",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Publishable",
|
|
6
|
+
"description": "Adds publish state columns (is_published, published_at) for content visibility. Enables AuthzPublishable and AuthzTemporal authorization.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"include_id": {
|
|
@@ -14,5 +14,9 @@ export const DataPublishable = {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
-
tags: [
|
|
17
|
+
"tags": [
|
|
18
|
+
"publishing",
|
|
19
|
+
"temporal",
|
|
20
|
+
"schema"
|
|
21
|
+
]
|
|
18
22
|
};
|
package/esm/data/data-search.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataSearch = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataSearch",
|
|
3
|
+
"slug": "data_search",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Unified Search",
|
|
6
|
+
"description": "Composite node type that orchestrates multiple search modalities (full-text search, BM25, embeddings, trigram) on a single table. Configures per-table search score weights, normalization strategy, and recency boost via the @searchConfig smart tag.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"full_text_search": {
|
|
@@ -151,5 +151,9 @@ export const DataSearch = {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
},
|
|
154
|
-
tags: [
|
|
154
|
+
"tags": [
|
|
155
|
+
"search",
|
|
156
|
+
"composite",
|
|
157
|
+
"schema"
|
|
158
|
+
]
|
|
155
159
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { NodeTypeDefinition } from '../types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const DataSlug: NodeTypeDefinition;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const DataSlug = {
|
|
2
|
+
"name": "DataSlug",
|
|
3
|
+
"slug": "data_slug",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Slug",
|
|
6
|
+
"description": "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.",
|
|
7
|
+
"parameter_schema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"field_name": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Name of the field to slugify"
|
|
13
|
+
},
|
|
14
|
+
"source_field_name": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Optional source field name (defaults to field_name)"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"required": [
|
|
20
|
+
"field_name"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"tags": [
|
|
24
|
+
"transform",
|
|
25
|
+
"behavior"
|
|
26
|
+
]
|
|
27
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataSoftDelete = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataSoftDelete",
|
|
3
|
+
"slug": "data_soft_delete",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Soft Delete",
|
|
6
|
+
"description": "Adds soft delete support with deleted_at and is_deleted columns.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"include_id": {
|
|
@@ -14,5 +14,7 @@ export const DataSoftDelete = {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
-
tags: [
|
|
17
|
+
"tags": [
|
|
18
|
+
"schema"
|
|
19
|
+
]
|
|
18
20
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataStatusField = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataStatusField",
|
|
3
|
+
"slug": "data_status_field",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Status Field",
|
|
6
|
+
"description": "Adds a status column with B-tree index for efficient equality filtering and sorting. Optionally constrains values via CHECK constraint when allowed_values is provided.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"field_name": {
|
|
@@ -35,5 +35,8 @@ export const DataStatusField = {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
|
-
tags: [
|
|
38
|
+
"tags": [
|
|
39
|
+
"status",
|
|
40
|
+
"schema"
|
|
41
|
+
]
|
|
39
42
|
};
|
package/esm/data/data-tags.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataTags = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataTags",
|
|
3
|
+
"slug": "data_tags",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Tags",
|
|
6
|
+
"description": "Adds a citext[] tags column with GIN index for efficient array containment queries (@>, &&). Standard tagging pattern for categorization and filtering.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"field_name": {
|
|
@@ -23,5 +23,8 @@ export const DataTags = {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
|
-
tags: [
|
|
26
|
+
"tags": [
|
|
27
|
+
"tags",
|
|
28
|
+
"schema"
|
|
29
|
+
]
|
|
27
30
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const DataTimestamps = {
|
|
2
|
-
name:
|
|
3
|
-
slug:
|
|
4
|
-
category:
|
|
5
|
-
display_name:
|
|
6
|
-
description:
|
|
7
|
-
parameter_schema: {
|
|
2
|
+
"name": "DataTimestamps",
|
|
3
|
+
"slug": "data_timestamps",
|
|
4
|
+
"category": "data",
|
|
5
|
+
"display_name": "Timestamps",
|
|
6
|
+
"description": "Adds automatic timestamp tracking with created_at and updated_at columns.",
|
|
7
|
+
"parameter_schema": {
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
10
|
"include_id": {
|
|
@@ -14,5 +14,8 @@ export const DataTimestamps = {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
-
tags: [
|
|
17
|
+
"tags": [
|
|
18
|
+
"timestamps",
|
|
19
|
+
"schema"
|
|
20
|
+
]
|
|
18
21
|
};
|