Skip to content

docs: Add development workflow docs for the library#67

Merged
philipaconrad merged 1 commit intomainfrom
philip/docs-improvements
Jan 7, 2026
Merged

docs: Add development workflow docs for the library#67
philipaconrad merged 1 commit intomainfrom
philip/docs-improvements

Conversation

@philipaconrad
Copy link
Member

@philipaconrad philipaconrad commented Jan 2, 2026

🔩 What code changed, and why?

This PR is a first stab at getting some proper "big picture" documentation around how this library goes from Rego policies to LINQ Expression trees.

It started as a bit of a meandering guide, because I was aiming to capture as much of the ugly stuff as I could remember about the development workflow and internals. Thanks @charlieegan3 for the initial rough editing pass.

I've chosen to focus on the development workflow in this docs PR, and will aim to get down into the nitty-gritty of the internals, with LINQ operators and Expression trees and whatnot, in future docs work.

Future work

  • More MappingConfiguration<T> examples, illustrating all the stuff that's possible.

@philipaconrad philipaconrad self-assigned this Jan 2, 2026
@philipaconrad philipaconrad added the documentation Improvements or additions to documentation label Jan 2, 2026

The process can coarsely be split between OPA and C# sides, but in practice, there's going to be some co-design where a dev might want a certain field in the model to map to a certain name in the Rego policy, and vice versa. Below is the rough process most users will probably find useful for spinning up a C# application that uses this library.

Generally, the flow for a data filter is: Rego -> UCAST -> C# -> LINQ Query -> SQL Query -> Database

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be a good mermaid diagram?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had that thought too over the weekend. I'll see what I can whip up!

Copy link
Member Author

@philipaconrad philipaconrad Jan 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the intro and sequence diagram to the project README, because I think they will be much more useful over there. I retargeted this document to focus on the development workflow, and I think it's better for not trying to do more things at once.

@philipaconrad philipaconrad force-pushed the philip/docs-improvements branch 2 times, most recently from c8239f7 to 9d24fcf Compare January 7, 2026 01:29
Signed-off-by: Philip Conrad <philip@chariot-chaser.net>
@philipaconrad philipaconrad force-pushed the philip/docs-improvements branch from 9d24fcf to abcd48a Compare January 7, 2026 01:52
@philipaconrad philipaconrad changed the title docs: Add internals docs for the library docs: Add development workflow docs for the library Jan 7, 2026
@philipaconrad philipaconrad marked this pull request as ready for review January 7, 2026 01:59
Copy link

@charlieegan3 charlieegan3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I like the new diagram a lot

@philipaconrad philipaconrad merged commit 6c5d8d9 into main Jan 7, 2026
7 checks passed
@philipaconrad philipaconrad deleted the philip/docs-improvements branch January 7, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants