Skip to main content

damv1springbootvalidator_forscriptspipeline

A specialized, Cython-compiled Python package that validates Spring Boot configuration files (application.yml / application.properties) as a CI/CD deployment gatekeeper. Enforces dynamic placeholder usage (${VAR} / ${VAR:default}) on sensitive configuration paths such as Flyway flags and JDBC connection strings.

Overview

This package provides a robust command-line validator for CI/CD pipelines. It detects Spring Boot projects (Maven/Gradle), resolves active Spring profiles, and validates that configured paths use dynamic placeholders instead of hardcoded values (hostnames, IPs, ports, database names). It supports non-blocking mode and Telegram failure notifications with automatic CI/CD metadata detection.

Security Enhancement (v1.0.0+): Core logic is compiled into C-extensions (.so / .pyd), preventing easy reverse-engineering or unauthorized modification of the validation logic.

Key Features

  • Multi-Entry Validation: --require-placeholder, --strict-placeholder (optional-strict), --optional-placeholder.
  • Strict URL Template Validation: Detects hardcoded hostname, IP address, port, and database/schema name inside connection strings.
  • Active Profile Resolution: Validates base config plus active profile-specific files with correct override priority.
  • Ignore-Fail Mode: --ignore-fail-all-require-placeholder lets the pipeline continue while still reporting failures.
  • Telegram Notification: --notification-fail-validation with auto-detected project name, repository, build number, and pipeline link (Bitbucket). Graceful fallback if credentials are invalid.
  • Source Code Obfuscation: Compiled via Cython.
  • Professional Log Output: No emojis, ASCII table report, CI-friendly exit codes.

Platform Compatibility Warning

Due to Cython compilation, this package is architecture and OS-specific.

  • A wheel built for Linux x86_64 will ONLY run on Linux x86_64.
  • A wheel built for macOS ARM64 will ONLY run on macOS ARM64 (Apple Silicon).
  • Distribution wheels are built via a cibuildwheel matrix: Linux x86_64 + aarch64, macOS arm64, Windows AMD64.

Installation

From production PyPI:

pip install damv1springbootvalidator-forscriptspipeline

From TestPyPI (staging verification; --extra-index-url required because the PyYAML dependency lives on production PyPI):

pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple damv1springbootvalidator-forscriptspipeline

CLI Syntax

damv1springbootvalidator_forscriptspipeline \
  [--require-placeholder PATH [PATH ...]] \
  [--strict-placeholder PATH [PATH ...]] \
  [--optional-placeholder PATH [PATH ...]] \
  [--ignore-fail-all-require-placeholder] \
  [--notification-fail-validation] \
  [--teleg-bot TOKEN] [--teleg-chat-id CHAT_ID]

Parameters

Parameter Description
--require-placeholder Paths that MUST exist and MUST contain a ${...} placeholder.
--strict-placeholder If the path exists, ALL dynamic parts must be placeholders (no hardcoded host/port/db). If absent, SKIP (pass).
--optional-placeholder Checked only if the path exists.
--ignore-fail-all-require-placeholder Exit code 0 even when validations fail (non-blocking pipeline).
--notification-fail-validation Send Telegram notification when failures exist.
--teleg-bot Telegram bot token. Invalid/empty value only logs a warning, never fails the process.
--teleg-chat-id Telegram chat ID.

Exit Codes

Code Meaning
0 All validations passed, OR failures ignored via --ignore-fail-all-require-placeholder.
1 Validation failed and process halted.

Usage Example 1: Bitbucket Pipeline (Linux x86_64)

image: maven:3-openjdk-17

pipelines:
  default:
    - step:
        name: '1. Validate Spring Boot Configs (Cython Secured)'
        image: python:3.10-slim
        script:
          - pip install --upgrade pip
          - PKG="damv1springbootvalidator-forscriptspipeline${PKGVALIDATOR_VERSION:+==${PKGVALIDATOR_VERSION}}"
          - pip install "$PKG"
          - |
            damv1springbootvalidator_forscriptspipeline \
              --require-placeholder spring.flyway.enabled \
              --strict-placeholder spring.datasource.url spring.datasource.writer.url \
              --optional-placeholder aws.athena.workgroup \
              --ignore-fail-all-require-placeholder \
              --notification-fail-validation \
              --teleg-bot "${TELEGRAM_BOT_TOKEN}" \
              --teleg-chat-id "${TELEGRAM_CHAT_ID}"

    - step:
        name: '2. Build & Test'
        script:
          - mvn clean package

Store TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID in Repository Variables (masked). The validator auto-detects BITBUCKET_REPO_SLUG, BITBUCKET_BUILD_NUMBER, and BITBUCKET_PIPELINE_UUID for the notification.

Usage Example 2: Local Simulation on macOS (Darwin ARM64 / Apple Silicon)

# Verify architecture (expect: arm64)
python3 -c "import platform; print(platform.machine())"

python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip

# From TestPyPI (staging) or production PyPI
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple damv1springbootvalidator-forscriptspipeline

cd spring-build
damv1springbootvalidator_forscriptspipeline \
  --require-placeholder spring.flyway.enabled \
  --strict-placeholder spring.datasource.url spring.datasource.writer.url \
  --optional-placeholder aws.athena.workgroup
echo "Exit code: $?"

Usage Example 3: Local Simulation on Linux x86_64 (Docker)

docker run --rm -it -v "$(pwd)":/work -w /work python:3.10-slim bash

# Inside container (verify architecture, expect: x86_64)
uname -m
pip install --upgrade pip
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple damv1springbootvalidator-forscriptspipeline

cd spring-build
damv1springbootvalidator_forscriptspipeline \
  --require-placeholder spring.flyway.enabled \
  --strict-placeholder spring.datasource.url
echo "Exit code: $?"

Sample Output

[STEP 1: SPRING BOOT PROJECT DETECTION]
[OK] Spring Boot Maven Application detected

[STEP 2: CONFIGURATION SCAN]
[SCAN] Base: ./src/main/resources/application.yaml
[SCAN] Active profiles: None (base only)

Files to validate:
  1. ./src/main/resources/application.yaml

[REPORT]
  PATH                          | STATUS | DETAILS
  ------------------------------+--------+-----------------------------------
  spring.flyway.enabled         | OK     | placeholder: FLYWAY_ENABLED
  spring.datasource.url         | OK     | placeholder: POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DB [strict-ok]
  spring.datasource.writer.url  | SKIP   | not present (strict-optional)

[SUMMARY]
Project             : spring-build
Project Source      : git remote origin
Total paths checked : 3
Passed              : 2
Failed              : 0
Skipped             : 1

Environment variables required:
  - FLYWAY_ENABLED
  - POSTGRES_DB
  - POSTGRES_HOST
  - POSTGRES_PORT

[RESULT] ALL VALIDATIONS PASSED

Sample Telegram Notification (HTML formatted)

SPRING BOOT CONFIG VALIDATION ALERT

Source: spring_boot_validator
Project: spring-build (git remote origin)
Status: FAILED (IGNORED)

Failed Validations (1):
- spring.flyway.enabled
  reason: HARDCODED: 'True' [application.yaml]

Note: pipeline will CONTINUE,
failures ignored via --ignore-fail-all-require-placeholder.

View Pipeline Result

Maintainer

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-win_amd64.whl (98.7 kB view details)

Uploaded CPython 3.13Windows x86-64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-macosx_11_0_arm64.whl (107.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-win_amd64.whl (98.4 kB view details)

Uploaded CPython 3.12Windows x86-64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-macosx_11_0_arm64.whl (107.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-win_amd64.whl (101.5 kB view details)

Uploaded CPython 3.11Windows x86-64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-macosx_11_0_arm64.whl (109.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-win_amd64.whl (101.4 kB view details)

Uploaded CPython 3.10Windows x86-64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-macosx_11_0_arm64.whl (109.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-win_amd64.whl (102.0 kB view details)

Uploaded CPython 3.9Windows x86-64

damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-macosx_11_0_arm64.whl (110.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 135141bd86b6892c19122fb65f0e1a3616c84f64d93dab8fcb68642fe930f5fa
MD5 318eebc81d3454a035b707c6f57dcd4c
BLAKE2b-256 6582449dc3463786867b61ab5df416ea2b7c41b415e27374156b5739297ebbf4

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f5e3608b0e592873ed4d79c73bd054b04dd413a87854cc47b0664193869ffc64
MD5 76468d05e15e51b47a61fe1f7540c87e
BLAKE2b-256 910dc00c0edd659c2de44db57017601fefd99a098f7e9b53dcea00d2076bc3a2

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0d8154dcc873f541fee5192c5a7267ba67807a14c8cf4aaaed89eacde31f539e
MD5 01b1f5d6524b000f4d95bd6c6993ea05
BLAKE2b-256 84cf83e1645497b3d05053a8d96b97a9bab8143bd773603fae6f40dd342210bb

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0cc3c5046117258ef0d2408f18ba6b8b9343b77e3a2bb84222374969f3d15e8e
MD5 8ece34d6444607458d3fb76a80266d70
BLAKE2b-256 5f4b6dfbac4dca73890af77bf08b2b261190c280624870220935bfeabfd86e07

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7364b11c12d5271f4c32bb51ef82f323b87ec6023dc27a281da307a69f042c24
MD5 05b5b6e5e943ee1a07e33d1ea2f05035
BLAKE2b-256 0e77bb8873fb07f4833eb362a3ab3b613fcba71172635f6227461b69291ac65b

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 31db252bcbe50ef680632f4d16adc86c96655660d60cca5e4e47bc8e1e61d73c
MD5 4870084d331886304c5917f09fc61bec
BLAKE2b-256 ee858bd17bec3ab56466f53dcd79a83d0d7e2a7d2b5f863c20d2425b183b1c74

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d4310178845df2a9c2d7aab1702850baefe3737721eb40a8815f144fcfb07e02
MD5 1b6f448d5504d2879fa7a363da90523e
BLAKE2b-256 f26beb42723e45076b94f7f052873885e5365ceb070e55ad66def1e83b51c26e

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1605506b0f5e16b65ac9da391e22fad39d3cf6e9546c50ee9db0dfc77e176316
MD5 b5d30fbcee87485b330315f871fb252d
BLAKE2b-256 804d942ea49b453d8dc6055d5060b0852c0ca65a2c72f5e9e620ca2dc05e3434

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 77cb23da8da0049228c4ffc7bbe363ac1c286d4bcaf80f3e42b30ca29a5c269c
MD5 1ffd004153e1ef924b6e29b6269d3c82
BLAKE2b-256 ce6da1a28c17473b9e8d991a5b3eb95d316e78d25354396f0f9d9492f41c8ed2

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 df5259b07e7be1f7069b9223fb2d632ab1588e6737dd7bc4fa112deac91beb78
MD5 6056935f479df2e6ef4e155001b622f0
BLAKE2b-256 234dea6b636edc639011dcc173be0c60e09f7793bd20ff6543d1605cdd15776e

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f92ebda86c9b9ec547156dd7b7a0b561223d97d3f568f950abf5295d012e2687
MD5 9090934b16b14ef99b0323a684ccca58
BLAKE2b-256 d3f21241f3cad60ae5d044b7f0ce89ded559a93cf3113cf1bb38fcc3fbe46943

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c9ec121b7d21e1683a87c9d105ebd72a818997f78a95d2bec8560659b904a41e
MD5 ac7606fb7cd84ea8f9ccca5c192826ee
BLAKE2b-256 c32ff51f194f0239a513f1bcfc7ff301f97b05084aa89d4ae9b9e35a5b5fbf5f

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7b579a1b6b7563fbc636c8e9048bcb233e2b175661bc7c62423d750987d8ab71
MD5 89dfa8c6e116ec3f32b664642e94bba3
BLAKE2b-256 e5a4e76bda6720b46697f0403369fc75d23f3d3fca32fa410cbfe6a5ca1a711a

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4edacb69267294da16279eeb6f26b8b99218887765f765f454dcae2d5aecec5
MD5 e66f834eb68f29d0991725a4dbf12dcb
BLAKE2b-256 f03a4ffeddaf2e51d75080675f63d3bd24812a65dc840793c1807afca1c6a3f1

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b06a58932bceb634661c2fb341acf61b9aad78b5410e04f3025ef62a546326b9
MD5 5f3770a472db3b9b9b6c4d4d55b00b8e
BLAKE2b-256 819fa76837ab0f5f55035ee03c6fd3a2245b3c28a135fe0274d6665511113be9

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 709c6b4514dab5d07205b560cfd2b34942fedf7ae78ccd8da3660e28d80202af
MD5 7e23cd0d995f22ea48937c1139c6163a
BLAKE2b-256 c6ea256dd1572694919adc2714dd6cd7d2e76cfa05a910945b22ffca0e7f6db8

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c65a275100e3d9f0ebc5f43315507a4fbb716dff83b236b52aa2b0ca08437c2d
MD5 82e0d58a5fcf0d104a7b2adb70c35bac
BLAKE2b-256 4d200cce639942d70bcfc86d50da83a7f4cb65284f8179249278a7395c474c6a

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e08a16611fb1e3f96eb67affdc469e4f90d80e1026e4c3ad1f95b3cbd1d4231d
MD5 ef6d4ff819e05da8b2c239c781e27215
BLAKE2b-256 965dc0145e9c6b8228519ead638ad8d1ee67ee935ded23a7897d9a80a8d60367

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 70e8961eefe49c62ea20a90f62584658bf5a0da1b7783ab0bfb14835863bd9a2
MD5 5b0cd41fccf63762a4e63a59cfa88184
BLAKE2b-256 eb0cb3c5c2f2cdcbedaafe962ef0c40379ebcf4193b9fb5fac8c8cbc01970bea

See more details on using hashes here.

File details

Details for the file damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for damv1springbootvalidator_forscriptspipeline-1.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6bed316a1a4f422a266d30526a583ee08930bcbd0be89c24a81c271c8a97f72
MD5 f24f05dcbae04be60a6292fd6c0df8bb
BLAKE2b-256 2155ac26aef1cc1aef5bec964b12a826367fc9f0c6e4763927f2f8eac3b6b421

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

20 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page