Skip to content

feat(node-type-registry): complete column-ref annotations for all column-creating types#1048

Merged
pyramation merged 1 commit intomainfrom
feat/complete-column-ref-annotations
May 3, 2026
Merged

feat(node-type-registry): complete column-ref annotations for all column-creating types#1048
pyramation merged 1 commit intomainfrom
feat/complete-column-ref-annotations

Conversation

@pyramation
Copy link
Copy Markdown
Contributor

Summary

Completes the format: "column-ref" annotation work across the entire node-type-registry. Every node type that creates or references columns now has proper annotations.

Types that previously hardcoded column names with no parameter_schema entry — now have column-ref properties with defaults:

  • DataPublishable: is_published_field (default "is_published"), published_at_field (default "published_at")
  • DataTimestamps: created_at_field (default "created_at"), updated_at_field (default "updated_at")
  • DataPeoplestamps: created_by_field (default "created_by"), updated_by_field (default "updated_by")
  • DataSoftDelete: deleted_at_field (default "deleted_at"), is_deleted_field (default "is_deleted")
  • DataOwnershipInEntity: owner_field_name (default "owner_id"), entity_field_name (default "entity_id")

Existing string properties that referenced columns but lacked annotation:

  • DataJobTrigger.payload_custom.additionalProperties: values are column names (e.g., {"invoice_id": "id", "total": "amount"})
  • DataImageEmbedding.payload_custom.additionalProperties: same pattern
  • ViewAggregated.aggregates[].alias: output column name

Regenerated blueprint-types.generated.ts to include the new type definitions.

Review & Testing Checklist for Human

  • Verify the new default values match the hardcoded column names in the SQL generators (table_module() dispatch in constructive-db) — e.g., DataTimestamps SQL generator creates created_at/updated_at, so defaults must match
  • After publishing, regenerate the SQL seed in constructive-db to confirm the registry table picks up the new annotations and defaults
  • Verify no existing blueprint consumers break from the added properties (all new props have defaults, so existing blueprints with {} data remain valid)

Notes

  • All new properties have defaults matching the current hardcoded column names, so this is backward-compatible
  • The Authz*, Search*, Relation*, and View* types were already fully annotated from PR feat: move node-type-registry to packages/ and add column-ref annotations #1043 — this PR completes the Data* types that were missing
  • blueprint-types.generated.ts was regenerated via npx ts-node src/codegen/generate-types.ts

Link to Devin session: https://app.devin.ai/sessions/20dbaaa0e6e74599842fbefe33efbc26
Requested by: @pyramation

…umn-creating types

- DataPublishable: add is_published_field, published_at_field
- DataTimestamps: add created_at_field, updated_at_field
- DataPeoplestamps: add created_by_field, updated_by_field
- DataSoftDelete: add deleted_at_field, is_deleted_field
- DataOwnershipInEntity: add owner_field_name, entity_field_name
- DataJobTrigger: add column-ref to payload_custom additionalProperties
- DataImageEmbedding: add column-ref to payload_custom additionalProperties
- ViewAggregated: add column-ref to aggregates[].alias
- Regenerate blueprint-types.generated.ts
@devin-ai-integration
Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@pyramation pyramation merged commit 6d585ff into main May 3, 2026
99 of 100 checks passed
@pyramation pyramation deleted the feat/complete-column-ref-annotations branch May 3, 2026 09:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant