Skip to content

feat: remove include_id from Data* modules and blueprint types#942

Open
pyramation wants to merge 1 commit intomainfrom
devin/1774978446-remove-include-id
Open

feat: remove include_id from Data* modules and blueprint types#942
pyramation wants to merge 1 commit intomainfrom
devin/1774978446-remove-include-id

Conversation

@pyramation
Copy link
Copy Markdown
Contributor

Summary

Removes the include_id parameter from all 7 Data* module definitions that previously had it. Users must now explicitly include DataId as a separate node instead of relying on implicit primary key creation via include_id: true.

Affected modules: DataTimestamps, DataDirectOwner, DataSoftDelete, DataPublishable, DataPeoplestamps, DataEntityMembership, DataOwnershipInEntity

Files changed:

  • 7 Data* definition files — removed include_id from parameter_schema.properties
  • blueprint-types.generated.ts — removed include_id?: boolean from 7 param interfaces
  • README.md — updated example to use string shorthand instead of { $type: 'DataDirectOwner', data: { include_id: false } }

Companion PR: constructive-db #722 removes include_id from the SQL generators. These two PRs should be merged together.

Review & Testing Checklist for Human

  • Merge together with constructive-db fix(codegen): use deepmerge for CLI config merging #722 — the TS types here must match the SQL generators. Merging one without the other creates a mismatch.
  • Search application code for include_id usage — any existing blueprint definitions or secure_table_provision INSERTs that pass include_id need to be updated to use explicit DataId instead.
  • Generated SDK types in sdk/ still reference include_id in comments (schema-types.ts, input-types.ts, public.graphql). These are generated from the DB schema and will be regenerated after constructive-db fix(codegen): use deepmerge for CLI config merging #722 is deployed — confirm this happens.

Test plan: After merging both PRs, deploy and run construct_blueprint() on a blueprint that uses DataId + DataTimestamps + DataDirectOwner (no include_id). Verify the table gets a UUID PK from DataId and that timestamps/ownership columns are created without errors.

Notes

  • This is a breaking change, acceptable per pre-launch policy (no backwards compatibility needed).
  • DataTimestampsParams, DataPublishableParams, and DataSoftDeleteParams are now empty interfaces — these modules have no remaining configurable parameters.
  • blueprint-types.generated.ts was edited manually rather than via pnpm generate:types. The edits are straightforward deletions but you may want to re-run the generator to confirm parity.

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

@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

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