feat: CF_LICENSE_KEY validation via Heimdall (closes #26) #31
No reviewers
Labels
No labels
architecture
backlog
enhancement
module:documents
module:hardware
module:manage
module:pipeline
module:voice
priority:backlog
priority:high
priority:medium
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/circuitforge-core#31
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/license-validation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary\n\n- New module
circuitforge_core/config/license.pywithvalidate_license()andget_license_tier()\n- ReadsCF_LICENSE_KEYfrom env; callsPOST {CF_LICENSE_URL}/licenses/verify\n- Graceful free-tier fallback on missing key, network errors, or invalid key\n- 30-minute module-level cache keyed on (key, product) pair\n- Both functions re-exported fromcircuitforge_core.config\n- 10 tests intests/test_config/test_license.py\n\n## Test plan\n\n- [ ]conda run -n cf python -m pytest tests/test_config/test_license.py -v— 10/10 pass\n- [ ]conda run -n cf python -m pytest tests/ -v— full suite passes\n- [ ]CF_LICENSE_KEYabsent → returns free tier\n- [ ]CF_LICENSE_URLenv var overrides Heimdall URL\n- [ ] Network error → returns free tier gracefully