Xpanse is an Open Source project allowing to easily implement native-managed service on any cloud service provider. This project is part of the Open Services Cloud (OSC) charter.
Xpanse unleashes your cloud services by removing vendor lock-in and lock out. It standardizes and exposes cloud service providers core services, meaning that your xpanse service is portable (multi-cloud) on any cloud topology and provider. It also avoids tight coupling of your service to other cloud service provider services.
Details can be found on the project website here.
Details can be found on the project website here.
Details can be found on the project website here.
- Run the terraform-boot project with spring-profile
oauth
with methods mentioned here. This is necessary even if the terraform-boot will be actually used without oauth enabled in production. This will make the client to handle both with and without authentication usecases automatically. - Access http://localhost:9090/v3/api-docs to get the openapi json.
- Copy all the JSON content of the openapi json and replace all the content in the JSON file terraform-boot-openapi.json.
- Run the below maven command to generate the REST API client and data models for terraform-boot. The command can be
executed directly inside the
deployment
module.
mvn clean generate-sources -DskipTerraformBootClientGeneration=false
- Run the tofu-maker project with spring-profile
oauth
with methods mentioned here. This is necessary even if the tofu-maker will be actually used without oauth enabled in production. This will make the client to handle both with and without authentication usecases automatically. - Access http://localhost:9092/v3/api-docs to get the openapi json.
- Copy all the JSON content of the openapi json and replace all the content in the JSON file tofu-maker-openapi.json.
- Run the below maven command to generate the REST API client and data models for tofu-maker. The
command can be executed directly inside the
deployment
module.
mvn clean generate-sources -DskipTofuMakerClientGeneration=false
- Run the policy-man project and access “http://localhost:8090/swagger/doc.json” to get the openapi json.
- Copy all the JSON content of the openapi json and replace all the content in the JSON file policy-man-openapi.json
- Run the below maven command to generate the REST API client and data models for policy-man. The command can be
executed directly inside the
policy
module.
mvn clean generate-sources -DskipPolicyManClientGeneration=false
This project using CheckStyle
framework to perform static code analysis. The configuration can be found
in CheckStyle. The framework also checks the code format in accordance to Google Java Format
.
The same file can also be imported in IDE CheckStyle plugins to get the analysis results directly in IDE and also to perform code formatting directly in IDE.
The framework is added as a maven plugin and is executed by default as part of the verify
phase. Any violations will
result in build failure.
All files in the repository must contain a license header in the format mentioned in License Header.
The static code analysis framework will also validate if the license exists in the specified format.
The xpanse project involves the use of some sensitive information, such as AK/SK sensitive fields in credential management, sensitive variable information during service deployment, etc.
- For local development, the AES private key file must exist in the project root path.
- For environments where the application jar is directly executed, The Aes key file (aes_sec) must be in the same directory as the project jar file (xpanse-runtime-x.x.x-SNAPSHOT.jar)
AES private key can be generated by any available tools that generate random 256-bit key.
Example: Use https://acte.ltd/utils/randomkeygen to generate the key and copy the value in Encryption key 256 field to the aes_sec file.
If no AES private key file aes_sec is found in the intended location or if the file is empty, then no encryption of the sensitive variables will take place. All data will stored in plain text within the JVM.
All third-party related content is listed in the DEPENDENCIES file.
The project follows google-code-format. We use the spotless plugin to format code and to validate code format. We can automatically format the code using the command below.
mvn spotless:apply
To validate errors we can run the command below.
mvn spotless:check && mvn checkstyle:check