Home

Awesome

compliance-trestle-demos

This project captures a number of demos, and sample set of content for compliance-trestle. Each of the folders in the top level of this project is a self contained demonstration.

These demos are designed to work with trestle version 1.0.x

Using / management of this repository

This project follows the same methodologies as within the main trestle project in terms of contributing and developer setup. Please submit issues here relating to this project.

The top level project itself is a container for a set of demonstrations. At a high level all files are expected to pass:

All content provided here is 'as is' and is maintained on a best effort basis.

To add a demonstration in addition to opening a PR with the new demonstration in a single folder within the top level project:

Demos with CICD

Demonstrations

Simple sdk examples.

This folder contains a number of small examples for using the trestle OSCAL sdks.

Australian government Information Security Manual (ISM)

This demonstration uses trestle as an SDK for generating OSCAL files. This demonstration downloads all currently available versions of the Australian Government ISM from ACSC and converts those documents to a set of OSCAL catalogs and profiles. Read more about the demo here.

arc42 architectural template enforcement using trestle author.

arc42 have created a set open-source architecture documentation templates. This demonstration uses trestle author to enforce use of the (modified) arc42 templates.

A CICD pipeline (using github actions) is used for this demonstration. The full repository, including working CICD is here. Read more about the demo here.

Trestle flask microservice demonstation.

trestle uses a python library called pydantic to form the underlying OSCAL object models. flask-pydantic introduces a mechanism which integrates pydantic models into flask, providing automated user input validation in one line of code. This demo accepts a catalog as a POSTed object, throwing errors if the catalog does not meet the schema, and returns the catalog in the response.

Creating a CIS controls catalog from an excel spreadsheet.

The Centre for Internet Security (CIS) produce a number of cross industry standards for IT security including their platform specific benchmarks and a suite of controls. This demo converts a spreadsheet of those controls into a a catalog and three profiles.

Creating an SSP using trestle author.

trestle author ssp-generate and trestle author ssp-author allow users to generate first a set of markdown documents to allow easy editing of control responses and second to reassemble that information up into an OSCAL ssp document. This is a 'baseline' demonstration with more sophisticated updates expected in the near term.

Trestle repository api (trestle.core.repository)

trestle.core.repository is an API which abstracts users from the file system of a trestle repository. It provides a way for external developers to access a trestle repository without relying on presumptions (such as cwd being within the repository). Find the demo here.

Task Examples

Convert a spreadsheet into a component-definition

This demonstration shows how to use the trestle task xlsx-to-oscal-component-definition functionality.

Convert an OpenShift Compliance Operator (OSCO) results into a partial assessment-results

This demonstration shows how to use the trestle task osco-to-oscal functionality.

Trestle as Foundation Examples

Convert Kubernetes results into partial OSCAL assessment-results

This demonstration shows how to use trestle functionality to create a Kubernetes results (YAML) to OSCAL (JSON) transformer.

License & Authors

If you would like to see the detailed LICENSE click here. Consult contributors for a list of authors and maintainers for the core team.

Note that some content referenced within this repository is under separate licenses and is annotated as such.

# Copyight (c) 2021 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.