Skip to main content

JSON Schema Application Environment Configuration and Validation

This package allows you to validate application environment variables that are used for configuration with JSON schemas.

It is extremely useful to use with Docker/kubernetes where you might have quite a bit of configuration originating from environment variables; however, it also provides a nice generic way to define and validate any application configuration with JSON Schema.

Usage

First, define a JSON Schema file(env-schema.json):

{
    "$schema": "http://json-schema.org/draft-07/schema#", 
    "type": "object",
  
    "properties": {
        "db_uri": {
            "type": "string",
            "title": "AMQP host"
        }
    },
    "required": ["db_uri"]
}

Then, validate your environment config(export DB_URI=postgresql://localhost:5432):

import enviral
settings = enviral.validate_env('env-schema.json')
settings['db_uri']

Validate with multiple files:

import enviral
settings = enviral.validate_env('env-schema.json', 'package:validation-file.json')

You can also validate existing objects against JSON schema files:

import enviral
enviral.validate_object({"db_uri": "postgresql://localhost:5432"}, 'env-schema.json')

Or command line validate:

json-schema-env-validator env-schema.json package:validation-file.json

Development

pip install -r requirements.txt
pip install -e .
./bin/pre-commit install

Release files for json-schema-env-validator 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for json-schema-env-validator 1.0.6
File Size Uploaded
json-schema-env-validator-1.0.6.tar.gz 6.9 kB Details

Release files / json-schema-env-validator-1.0.6.tar.gz

Download URL json-schema-env-validator-1.0.6.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a4ec7393d424e70d0007ac5b11a6a4c7c0f1ea1cc2b4cf1ec3b2160186ae34eb
BLAKE2b-256 checksum
How to use checksums
0b199717fc58a82228ba1173868b3e61e119e596d5b97e06274d18f3a6727ffe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.5

Release history Release notifications | RSS feed

This release

1.0.6 This release

1 release file

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release 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