Skip to main content

Tools to manage & autogenerate python objects representing the OSCAL layers/models

Project description

Trestle

Trestle is a tool to which enables the creation and validation of documentation artifacts for compliance requirements. It leverages NIST's OSCAL as a standard data format for interchange between tools & people and provides an opinionated approach to OSCAL adoption.

By design Trestle runs as a CICD pipeline running on top of compliance artifacts in git to provide transparency to the state of compliance across multiple stakeholders in an environment friendly to developers. Trestle passes the artifacts generated on to tools to orchestrate the enforcement, measurement and reporting of compliance.

It also provides tooling to manage OSCAL in a more human-friendly manner. By expanding the large OSCAL data structures into smaller, easier to edit, sub-structures, creation and maintenance of these artifacts can follow normal git workflows (peer review via pull request, versioning, releases/tagging).

Why Trestle?

Compliance suffers from being a complex problem that is hard to articulate simply. It requires complete & accurate execution of multiple procedures, across many disciplines (IT, HR, management), with periodic verification and audit of said procedures against controls.

While its possible to manage the description of controls & how an organisation implements them in ad hoc ways, with general tools (spreadsheets, documents), this is hard to maintain for multiple accreditations and, in the IT domain at least, creates a barrier between the compliance efforts and people doing daily work (DevOps staff).

Trestle aims to reduce or remove this barrier by bringing the maintenance of control descriptions into the DevOps domain. The aim is to have changes to the system (for example, updates to configuration management) easily related to the controls impacted & those controls be modified if required in concert with the system change.

Trestle implicitly provides an core opinionated workflow driven by it's pipeline steps to allow standardized interlocks with other compliance tooling platforms.

Machine readable compliance format

Compliance activities at scale, be that size of estate, or number of accreditations, require automation to be successful & repeatable. OSCAL as a standard allows teams to bridge between the "Governance" layer and operational tools.

By building human managed artifacts into OSCAL, Trestle is not only able to validate the integrity of the artifacts that people generate, it also enables reuse and sharing of artifacts and can also provide suitable input into tools which automate operational compliance.

Using Trestle

Trestle converts complex schema/data structures into simple files in a directory structure. The aim of this is to make it easier to manage for humans - individual objects can be versioned & reviewed, then 'compiled' into the larger structure of a Catalog, SSP or Assessment Plan.

Install and Run:

Install from PYPI and run:

# Setup virtual environement
python3 -m venv venv
. ./venv/bin/activate

# Install trestle from PYPI
pip install compliance-trestle

# Run Trestle CLI
trestle -h # For command line help

In order to install Trestle from source, run the following command:

# Clone
git clone https://github.com/IBM/compliance-trestle.git
cd compliance-trestle

# Setup
python3 -m venv venv
. ./venv/bin/activate
pip install -q -e ".[dev]" --upgrade --upgrade-strategy eager

# Run Trestle CLI
trestle -h

Contributing to Trestle

Our project welcomes external contributions. Please checkout CONTRIBUTING.md to get started.

License & Authors

If you would like to see the detailed LICENSE click here. Check out MAINTAINERS for list of authors.

# Copyright (c) 2020 IBM Corp. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

compliance-trestle-0.1.0.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

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

compliance_trestle-0.1.0-py2.py3-none-any.whl (62.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file compliance-trestle-0.1.0.tar.gz.

File metadata

  • Download URL: compliance-trestle-0.1.0.tar.gz
  • Upload date:
  • Size: 28.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for compliance-trestle-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ce45d780e33402f0e3ea9603697e8783199b67adef004ed7811e2c8d080bbaba
MD5 74c901856e692618f3b2216b603d23c1
BLAKE2b-256 7c311c6baf0ffdde40e2e68f92492ce8b73fa3a855db1ab0ebb7a952c5c511bc

See more details on using hashes here.

File details

Details for the file compliance_trestle-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: compliance_trestle-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 62.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for compliance_trestle-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fe9d789ee26c5f6428650056f463d58f8c88d334a726be65104b146bceb4c104
MD5 7a7b0873869bcd19a602f332a6345423
BLAKE2b-256 a2de11bec121021cf331d4908aa45d86acb93a5debe11de39ac976905fe3870a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page