Improve Documentation Entity Identifier Management
E
Eamon Mason
Problem Statement
Port's 100-character identifier limit makes it impossible to reliably create unique, deterministic identifiers for documentation entities using natural keys (repository + filepath), which frequently exceed this limit. There is currently no built-in way to generate SHA hashes from property values during entity creation, forcing users to choose between:
- Truncated paths → Risk of identifier collisions
- Manual hash generation → Inconsistent, error-prone, requires external tooling
- Filename-only identifiers → Guaranteed collisions (multiple README.mdfiles)
Current Constraints
Identifier Limit
- Maximum identifier length: 100 characters
- Pattern requirement: ^[A-Za-z0-9@_.:\\/=-]+$
Real-World Examples Exceeding Limit
Example 1: GitHub Documentation Path
Repository: tr/platform-engineering-kubernetes-infrastructure
File path: .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Natural identifier: tr/platform-engineering-kubernetes-infrastructure/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Character count: 109 characters
Example 2: Deep Documentation Structure
Repository: atpa-gst-ai-assistant
File path: documentation/architecture/backend-services/authentication/oauth-integration-guide.md
Natural identifier: atpa-gst-ai-assistant/documentation/architecture/backend-services/authentication/oauth-integration-guide.md
Character count: 114 characters
Example 3: Long Repository Names
Repository: thomson-reuters-legal-technology-innovation
File path: docs/deployment/kubernetes/production-configuration.md
Natural identifier: thomson-reuters-legal-technology-innovation/docs/deployment/kubernetes/production-configuration.md
Character count: 117 characters
This is critical for us as:
- Blocks core functionality: Can't reliably upsert entities
- Forces workarounds: External scripting required for all integrations
- Data quality issues: Identifier collisions cause data loss
- Operational overhead: Manual identifier management doesn't scale
- Architecture constraint: Limits usefulness of Port for documentation management