Define update behavior for warehouse person and group property mappings
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 39.9k
- Forks
- 3.4k
- Avg merge
- 6h 51m
- Merged PRs (30d)
- 232
Description
Feature request
Is your feature request related to a problem?
Warehouse-backed person and group property sources accept column_property_map and column_descriptions on create, but the update API does not accept those fields. Correcting a mapping therefore requires deleting and recreating the source and changes its identity.
Describe the solution you'd like
Allow PATCH to update column_property_map and column_descriptions for existing warehouse-backed person and group property sources.
The focused change in #89260:
- applies the existing create-time validation and normalization
- requires editor access to the bound warehouse object when profile mapping fields are supplied
- preserves the source identity and saves the update under the existing row lock
- requests the existing binding-level backfill when an enabled source's effective mapping changes
- updates descriptions on existing property definitions without requiring a value backfill
- keeps profile sources on the warehouse path and account sources on the account path
- accepts
nullprofile-only fields when an account-source GET representation is sent back through PATCH - avoids scheduling work for an effective no-op
Describe alternatives you've considered
Deleting and recreating the source loses its identity. Updating database fields out of band is not a supported API contract.
Additional context
Done means #89260 delivers the PATCH contract and focused regression coverage listed above.
This issue does not redesign ordering between incremental syncs and backfills, retries after activity failure, property-definition creation or provenance ownership, the UI editor, or MCP instructions. It uses the existing synchronization mechanisms rather than defining a new end-to-end orchestration contract.
Debug info
- [ ] PostHog Cloud, region and project ID: not applicable; source-level API contract gap
- [x] PostHog Hobby self-hosted with `docker compose`, version/commit: current source and implementation are tracked in #89260
- [ ] PostHog self-hosted with Kubernetes (deprecated, see `Sunsetting Kubernetes support`), version/commit: not applicable
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the focused change in #89260 and its regression coverage; the issue does not name implementation files or test paths. Done means the PATCH contract and the listed validation, access, locking, backfill, description, source-path, null-field, and no-op behaviors are covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design, data-engineering
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100