Just realized I lost my pinned post when moving to a new instance, so here's a new one. See my profile for an #introduction to who I am β what I want to talk about here is the project I've been working on the most recently. That project is #Regal, a linter and a language server for #OPA's policy language #Rego.
What started out as a simple linter is now a complete companion tool for anyone working with Rego, providing developers new to the language a platform for learning, and seasoned developers means to enforce best practices and guardrails around their policies.
If you're working with anything related to OPA and Rego, try it out! If it doesn't help you in your work, that's a bug and I want to know about it. And if there's anything else related to OPA or Rego you want to ask someone about, my DMs are always open for that.
https://github.com/StyraInc/regal/
Building #Regalβs linter rules in #Rego really pushed the language to its limits some years back, and both OPA and Rego have improved a lot thanks to that. Building parts of its language server in Rego too was perhaps taking it too far, but OTOH, the LSP is really just JSON in and JSON out, which is what OPA does best after all.
The bundled policies in Regal are normally embedded in the binary. Thatβs great for distribution, but kinda sucks for development as any change requires compilation. Not anymore! Today I merged some work of mine allowing live-reloading of the language server policies, and itβs such a huge difference seeing the result of a change a second after you made it. The video here shows live-editing of a LSP code action policy, and how adding a new βsource actionβ item in the server immediately propagates to the client. Sooo much fun!
Just realized I lost my pinned post when moving to a new instance, so here's a new one. See my profile for an #introduction to who I am β what I want to talk about here is the project I've been working on the most recently. That project is #Regal, a linter and a language server for #OPA's policy language #Rego.
What started out as a simple linter is now a complete companion tool for anyone working with Rego, providing developers new to the language a platform for learning, and seasoned developers means to enforce best practices and guardrails around their policies.
If you're working with anything related to OPA and Rego, try it out! If it doesn't help you in your work, that's a bug and I want to know about it. And if there's anything else related to OPA or Rego you want to ask someone about, my DMs are always open for that.
https://github.com/StyraInc/regal/