ENG-2537: Add property_ids to DatasetConfig and ManualTaskConfig#7361
Merged
ENG-2537: Add property_ids to DatasetConfig and ManualTaskConfig#7361
Conversation
Add ARRAY(String) property_ids column to datasetconfig and manual_task_config tables with GIN index for efficient array queries. Update DatasetConfigCtlDataset schema and service to pass through property_ids on PATCH. Empty array = universal access (backward compatible, no bootstrap needed). Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
Greptile OverviewGreptile SummaryThis PR adds Key changes:
Implementation follows existing patterns:
This is a data model change only with no runtime behavior changes. Confidence Score: 5/5
Important Files Changed
|
Prevents storing invalid property IDs through the dataset-configs PATCH endpoint. Uses existing ValidationError handling to surface errors in the bulk response. Co-authored-by: Cursor <cursoragent@cursor.com>
galvana
reviewed
Feb 12, 2026
galvana
reviewed
Feb 12, 2026
galvana
requested changes
Feb 12, 2026
Contributor
galvana
left a comment
There was a problem hiding this comment.
Just some minor typing updates
Co-authored-by: Adrian Galvan <adrian@ethyca.com>
Co-authored-by: Adrian Galvan <adrian@ethyca.com>
galvana
approved these changes
Feb 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket ENG-2537
Description Of Changes
Add
property_idsARRAY(String) column todatasetconfigandmanual_task_configtables, enabling datasets to be tagged with properties for future property-based DAG filtering (Ticket 2). This is a data model + schema change only — no runtime DSR behavior changes.Key design decisions:
server_default='{}'— empty array = universal access, backward compatible, no bootstrap neededdatasetconfig.property_idsfor efficient array containment queriesDatasetConfigCtlDatasetschema accepts optionalproperty_idsfor PATCH pass-throughplus_propertytable on PATCH — invalid IDs rejected with clear errorproperty_ids— only fields in the data dict are setCode Changes
src/fides/api/models/datasetconfig.py- Addproperty_idsARRAY(String) column + GIN indexsrc/fides/api/models/manual_task/manual_task.py- Addproperty_idsARRAY(String) columnsrc/fides/api/schemas/dataset.py- Add optionalproperty_idstoDatasetConfigCtlDatasetsrc/fides/service/dataset/dataset_config_service.py- Pass throughproperty_idswhen provided in PATCH, validate IDs existsrc/fides/api/alembic/migrations/versions/xx_2026_02_11_1840_...py- Auto-generated migrationSteps to Confirm
All API calls can be made via the FastAPI docs page at
http://localhost:8080/docs.Please test with Fidesplus PR ENG-2537/assign-properties-to-datasets
Run fidesplus from that PR pointed at this fides PR.
Prerequisites: Create test data
Create a connection config:
PATCH /api/v1/connection[{"name": "Verify Props Connection", "key": "verify_props_conn", "connection_type": "postgres", "access": "read"}]Create a ctl_dataset:
POST /api/v1/dataset{ "fides_key": "verify_props_dataset", "organization_fides_key": "default_organization", "name": "Verify Props Dataset", "description": "Test dataset for property verification", "collections": [{ "name": "users", "fields": [{"name": "id", "data_categories": ["system.operations"], "fides_meta": {"primary_key": true}}] }] }Create a property (for step 5 — requires Fidesplus):
POST /api/v1/plus/property{"name": "Verify Test Property", "type": "website"}Note the returned
id(e.g.FDS-XXXXXX) for step 5.1. Verify upgrade migration
2. Verify GIN index
3. PATCH without property_ids — existing behavior unchanged
PATCH /api/v1/connection/verify_props_conn/datasetconfig[{"fides_key": "verify_props_dataset", "ctl_dataset_fides_key": "verify_props_dataset"}]Expect: 200 with dataset in
succeededarray.property_idsdefaults to[]and is not modified.4. PATCH with invalid property ID — rejected
PATCH /api/v1/connection/verify_props_conn/datasetconfig[{"fides_key": "verify_props_dataset", "ctl_dataset_fides_key": "verify_props_dataset", "property_ids": ["FDS-FAKE123"]}]Expect: 200 response with dataset in
failedarray, message containing"Unknown property IDs: ['FDS-FAKE123']".5. PATCH with valid property ID — persisted
PATCH /api/v1/connection/verify_props_conn/datasetconfig[{"fides_key": "verify_props_dataset", "ctl_dataset_fides_key": "verify_props_dataset", "property_ids": ["<PROPERTY_ID_FROM_STEP_3>"]}]Expect: 200 with dataset in
succeededarray.Verify in the database:
6. Downgrade migration
Pre-Merge Checklist
CHANGELOG.mdupdatedmaindowngrade()migration is correct and works