This repo was created togheter with a series of articles published here.
Code is demonstrating how Open Policy Agent (aka OPA) can run alongside the app and serve all the policy-related decisions.
The tech stack
- Angular 15
- Open Policy Agent, code developed against v0.48
- OPA running in WebAssembly
The concepts are demonstrated as a Contract Management solution
The Angular logic can be found under src/app
. The rego files are located under rego
folder. The rego/README.md
explains how to update the WebAssembly/wasm file.
Get started
Just run this as you would with any normal Angular app (described in the default Angular CLI further below):
npm install
ng serve
When accessing http://localhost:4200/
you should see a welcome screen. There is verbose logging in the browser console.
If you'd like to access via mobile, do this (verified on Mac):
ng serve --host=0.0.0.0 --disable-host-check
In the mobile, navigate to http://<webserverip>:4200/
Below - the default Angular CLI output...
This project was generated with Angular CLI version 15.0.5.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The application will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.