Installation and upgrade
This topic will guide you through the installation of Axiomatics Policy DevOps (APD). Before you start, make sure you have the following requirements:
- Java 17 or later
- Git
- Internet access
- Axiomatics S3 credentials
- an IDE (optional, but Visual Studio Code is recommended)
- Axiomatics Decision Service (ADS) license (optional)
- Docker (optional)
Installation and configuration
Follow these steps to get started with the Axiomatics Policy DevOps:
Clone the APD project from GitHub.
git clone https://github.com/axiomatics/axiomatics-policy-devopsnoteIf you are asked for credentials, log in with the credentials provided by Axiomatics.
Navigate to the cloned repository and configure the repository key for accessing the Axiomatics Maven repository in the
gradle.propertiesfile.gradle.propertiesAXIOMATICS_ACCESS_KEY_ID=<key_id>
AXIOMATICS_SECRET_ACCESS_KEY=<access_key>
If you have an ADS license, copy it to the
licensedirectory.ADS version Filename ADS 1 axiomatics_PDP.licenseADS 2 axiomatics_ADS.license
Project structure
The APD project has the following structure:
| Directory/File | Description |
|---|---|
buildSrc | Contains internal scripts for bootstrapping the project. Should not be modified. |
extra/exampleRequests/ | Provides examples of sending requests using curl. |
gradle/ | Gradle internal files. Should not be modified. |
license/ | The directory for your Axiomatics ADS license file. |
src/authorizationDomain | Fetches the attribute connector configuration as outlined in the Authorization domain V2 directory layout convention. |
src/test | Contains your Java-based tests for policies and attribute connectors. |
src/extra | Contains additional files required by ADS or during test execution, such as ADS 1.x and 2.x deployment.yaml files, and keystores/truststores. |
build.gradle | The Gradle build script for configuring the project. |
📦alfa
┣ 📂build 📖 Temporary directory with outputs
┣ 📂buildSrc ⛔ Axiomatics internal bootstrapping scripts
┣ 📂extra 📖 Extra resources
┃ ┗ 📂exampleRequests Provides examples of sending requests using curl
┣ 📂gradle ⛔ Gradle internal bootstrapping scripts
┣ 📂license ✍ Axiomatics software licenses directory
┣ 📂src Source code directory
┃ ┣ 📂authorizationDomain Authorization domain source code directory
┃ ┃ ┣ 📂alfaSpecifications ✍ ALFA policies
┃ ┃ ┣ 📂attributeConnectors ✍ Attribute connectors
┃ ┃ ┣ 📜attributeCache.yaml ✍ Attribute cache settings
┃ ┃ ┣ 📜attributes.yaml ✍ Attribute dictionary
┃ ┃ ┣ 📜decisionParameters.yaml ✍ ADS evaluation parameters
┃ ┃ ┣ 📜identity.yaml Authorization Domain identifier, override automatic identity based on Git
┃ ┃ ┗ 📜metadata.yaml ✍ Authorization Domain metadata
┃ ┣ 📂extra ✍ Runtime resources (keystores, trustores, scripts)
┃ ┗ 📂test Test source code directory
┃ ┣ 📂java ✍ ALFA JUnit tests
┃ ┗ 📂resources ✍ Test resources
┣ 📜build.gradle ✍ Project build definition
┣ 📜deployment.yaml ✍ ADS deployment descriptor
┣ 📜Dockerfile ✍ Dockerfile to build ADS service
┣ 📜gradle.properties ✍ Axiomatics Maven repository credentials
┣ 📜gradlew ⛔ Gradle internal bootstrapping scripts
┣ 📜gradlew.bat ⛔ Gradle internal bootstrapping scripts
┣ 📜headers.json ✍ Optional HTTP headers to ADS sample
┣ 📜README.md ✍ Project information
┗ 📜settings.gradle ✍ Project settings
---
Legend:
✍ File or directory that you'll likely modify or add to.
📖 File or directory containing output (read-only).
⛔ File or directory you should avoid modifying.
For full reference of the Authorization Domain layout, read the Authorization Domain layout section.
Upgrade
Upgrade APD by pulling the latest changes from the Git repository:
git pull