b8eb1d808599d0495a4394f19fb6b6e148c80ed3
Replaces hardcoded 38 roles with complete list extracted from bicep/lookup/rbaclookup:2.x module. Changes: - Add scripts/extract_roles_from_rbaclookup.py to parse rbacLookup.bicep - Generate ilsp/bicep_lsp/azure_roles.json with 682 role names - Load roles dynamically in modules.py from JSON file - Now supports ALL Azure built-in roles for autocomplete Benefits: - Complete Azure RBAC coverage (682 vs 38 roles) - Easy to update when new roles are added to rbaclookup module - Cleaner code (no giant hardcoded list in modules.py) Usage to update roles: python3 scripts/extract_roles_from_rbaclookup.py /path/to/rbacLookup.bicep 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
iLSP — Internal LSP Proxy
Self-hosted Language Server Protocol proxy for LRU's internal tooling.
Runs at https://ilsp.i80.dk (Nomad/Docker, autobox.i80.dk).
Provides smart autocomplete on top of standard LSPs:
| Language | Endpoint | Extra completions |
|---|---|---|
| Bicep | wss://ilsp.i80.dk/bicep |
Internal ACR modules, versions, params |
| YAML | wss://ilsp.i80.dk/yaml |
AzDO pipeline templates, GHA reusable workflows |
| Python | wss://ilsp.i80.dk/python |
Jedi (standard) |
→ See EDITOR_SETUP.md for editor configuration and a full feature overview.
Quick start
# Check service health
curl https://ilsp.i80.dk/health
# Run smoke tests
python3 scripts/smoke_test_completions.py
# Local dev
make run # build + start + health check
make run-quick # start without rebuilding
make logs # tail container logs
make health # curl health endpoint
Updating catalogs
python3 scripts/sync_pipeline_templates.py # scan AzDO + GHA template repos
bash scripts/push_catalogs.sh # scp to server + /reload
Deploy
Push to main → Gitea Actions builds image → Nomad deploys automatically.
# Manual deploy (if CI is down)
git push
ssh autobox.i80.dk 'nomad job run /opt/nomad/jobs/ilsp.nomad'
Description
Languages
Python
89.8%
Shell
4.2%
Makefile
2.8%
HCL
1.7%
Dockerfile
1.5%