...
Code Block |
---|
export terraform_issues_count=$(curl -X POST 'https://api.securetheorem.com/apis/devops/v1/iac_scans' \
--header 'Content-Type: multipart/form-data' \
--header 'Authorization: APIKey ABCACBA=' \
--form 'file=@"terraform_example_configuration:file.tf"' \
--form 'scan_type="TERRAFORM"'| jq -r ".issues_count")
// Then deploy your file only if terraform_issues_count is equal to 0
|
Use Public API to see all recent IAC scans
Code Block |
---|
curl -X POST 'https:///prod-horizon.appspot.com/public/v2/iac_scans' \
--header 'Authorization: Session ABCACBA=' \
response:
class IacScansResponse(BasePaginatedResponse):
iac_scans: List[IacScanSummaryField]
class IacScanSummaryField:
id: UUID
date_created: datetime
status: IacScanStatusEnum
scan_type: IacScanTypeEnum
scanned_files_name: List[str]
issue_count: int |
Integrating into a CI/CD pipeline
...
Create a new secure “Repository variables” in Pipelines configuration (from the repository setting).
Create a Pipeline by creating a
.bitbucket-pipelines.yml
within your repository with the following content:
Code Block | ||
---|---|---|
| ||
pipelines: tags: '*': - step: script: script: - apt-get update - apt-get install -y jq - export FILEPATH="$BITBUCKET_CLONE_DIR/my_terraform_file.tf" - if [ -f "$FILEPATH" ]; then echo "File exists" ; else exit 1; fi - | export TERRAFORM_DATA_THEOREM_RESPONSE=$(curl -X POST 'https://api.securetheorem.com/apis/devops/v1/iac_scans' \ --header 'Content-Type: multipart/form-data' \ --header 'Authorization: APIKey $DATATHEOREM$TERRAFORM_API_RESULT_API_KEY' \ --form 'file=@"terraform_example_configuration.tf'"$FILEPATH"'"' \ --form 'scan_type="TERRAFORM"') export TERRAFORM_ISSUES_COUNT=$(echo $DATATHEOREM_API_RESULT_API_KEY | tr '\r\n' ' ' | jq -r ".issues_count") export MARKDOWN_RESULT=$(echo $TERRAFORM_DATA_THEOREM_RESPONSE | tr '\r\n' ' ' | jq -r ".result_as_markdown") if [ $TERRAFORM_ISSUES_COUNT == 0 ]; then echo "Deploying file: terraform_example_configuration" else echo "Terraform file contains $TERRAFORM_ISSUES_COUNT issues, abort deployment..." echo "Terraform file issues report: $MARKDOWN_RESULT" exit 1 fi |