Archive of Conceptual Notes
Stages of Compliance
Title | GovStack Candidate Software | Non-compliant Software | Partially Compliant Software | Fully Compliant Software |
---|---|---|---|---|
Def | Software that is potentially compliant | Software that does not fulfill all MUST Key Digital Functionalities | Software that does fulfill all MUST Key Digital Functionalities and additional Cross-Cutting Requirements, Functional Requirements and API Services. All integration scenarios possible. | Software that fulfills all MUST requirements and some SHOULD requirements of one or multiple Building Blocks Specifications. All integration scenarios possible. |
Evaluation Schema
Criterion | Partially Compliant Software | Fully Compliant Software |
---|---|---|
Deployability via container |
|
|
Availability of an adapter or native interfacing support |
|
|
Fulfillment of MUST Key Digital Functionalities stated in the respective BB specifications | All | All |
Fulfillment of Service API requirements (using the provided test harness, see Steps to check compliance against a GovStack API spec ) | >=1 | All |
Fulfillment of MUST cross-cutting and functional requirements stated in the respective BB specifications | >=1 | All |
Fulfillment of SHOULD cross-cutting and functional requirements stated in the respective BB specifications | Optional | Optional |
Fulfillment of MUST cross-cutting requirements stated in the Architecture BB specifications | >=1 | All |
Fulfillment of SHOULD cross-cutting requirements stated in the Architecture BB specifications | Optional | Optional |
Usage rights (proprietary or FOSS license) of the software are stated. |
|
|
Documentation for deployment, integration and configuration (incl. examples) is provided. |
|
|
Categories of Compliance (Alternative suggestion to “compliance stages”)
Target group: Procurer and Integrator
Objective: Ease process of system integration and increase transparency. Not: gate keeping or certification processes
There is no minimum, every solution can be listed with its degree of compliance.
Deployment Check
Level 1 | Level 2 |
---|---|
Must be deployable via container | Must be deployable via container |
| Provide deployment scripts (Helm Chart in Kubernetes) |
|
|
Interface Check
Level 1 | Level 2 |
---|---|
Fulfillment of at least one Service API (via adapter or native support) | Fulfillment of all Service APIs (via adapter or native support) |
| Fulfillment of all MUST API related requirements in the Architecture BB specifications (ch. 5.1-5.4, 5.6, 5.13) |
Fulfillment of APIs can be tested using the provided test harness, see Steps to check compliance against a GovStack API spec
Requirements Specification Check
Level 1 | Level 2 |
---|---|
Fulfillment of all MUST Key Digital Functionalities stated in the respective BB specifications | Fulfillment of all MUST Key Digital Functionalities stated in the respective BB specifications |
Fulfillment of at least one MUST cross-cutting and functional requirements stated in the respective BB specifications | Fulfillment of all MUST cross-cutting and functional requirements stated in the respective BB specifications |
Fulfillment of at least one MUST cross-cutting requirements stated in the Architecture BB specifications | Fulfillment of all MUST cross-cutting requirements stated in the Architecture BB specifications |
Stages of Compatibility (Alternative suggestion to “compliance stages” focusing on integration)
The following categories are used to insert and list software provided by market actors in a GovStack catalog/marketplace.
Title | GovStack Candidate Software | Partially Compatible Software | Fully Compatible Software |
---|---|---|---|
Def | Software that is potentially compatible | Software that does not fulfill all MUST requirements of a Building Block Specification, but partially fulfills MUST and SHOULD functional requirements and can be interfaced via an adapter. Usually, the functions are a useful additions to the GovStack ecosystem. Similar to Level 1 Integration Scenario, see below | Software that fulfills all MUST requirements and to certain degree SHOULD requirements of one or multiple Building Blocks Specifications.
Similar to Level 2 and 3 Integration Scenario, see below |
Criteria |
|
|
|
Integration Scenarios
work in progress
Level 1: Integrate non-compliant system
Description: A GovStack instance needs to be connected to an external, non-compliant system (does not meet all required API specs and other criteria), that is managed by an organisation outside of the GovStack instance.
Challenge: The GovStack instance operator needs to exchange data with but has no control over the target instance.
Justification: Different organisation / host, Different technology choices, Legacy obligations
Solution: Set up an empty Building Block instance with only an adapter gateway specific to the target system.
To Be revised
Requirements (Target System):
Authentication, e.g. SAML <-> JWT in HTTP headers
Filtering and aggregation logic
Adapter must publish static OpenAPI spec to Information Mediator, including JSON Schemas
Requirements (GovStack Adapter):
Data Translation,
e.g. HL7 2.5/3.0 <-> JSON SchemaProtocol Translation,
e.g. SOAP <-> REST
Benefits:
Quick connectivity
No migration scenario required in external system
No detailed harmonisation of IT governance principles
Flavors:
Partner organisation runs adaptor
Partner organisation only provides API & documentation
Level 2: Integrate partially compliant system
Description: A GovStack instance needs to integrate an partially compliant software/application (e.g. deployment requirement fulfilled but API only thorugh an adapter) inside of the GovStack instance.
Challenge: GovStack manages the installation of the instance, but has no influence on the development of the software.
Justification: Organisation requests specific software/application; software is not fully GovStack compliant
Solution: Set up a GovStack instance with the software and an adapter gateway.
To Be revised
Requirements (Target System):
Authentication, e.g. SAML <-> JWT in HTTP headers
Filtering and aggregation logic
Adapter must publish static OpenAPI spec to Information Mediator, including JSON Schemas
Packaged as a container (Docker/Docker Compose/OCI)
Include a complete OpenAPI/Swagger specification to be published to GovStack peers though the information mediator. Must include descriptions of all exposed APIs with schemas for payloads, including examples.
Requirements (GovStack Adapter):
Data Translation, e.g. HL7 2.5/3.0 <-> JSON Schema
Protocol Translation, e.g. SOAP <-> REST
DPG = Digital Public Good (related to FOSS)
Benefits:
Quick connectivity
No migration scenario required in external system
No detailed harmonisation of IT governance principles
Flavors:
Partner organisation runs adaptor
Partner organisation only provides API & documentation
Level 3: Integrate fully compliant system
Description: An existing software was adapted to fully meet GovStack requirements and can be deployed just like any other GovStack BB.
Challenge: Software must pass all GovStack compliance requirements
Benefits:
Re-use existing software
Profit from high application maturity
GovStack certification implies adherence to GovStack security standards
Visibility through listing as building block in the catalogue
To Be revised
Requirements (DPG):
Must have an accepted rating as a digital public good
BB must publish static OpenAPI specs to Information Mediator, including JSON Schemas
Web-Hooks
Docker Packages
GovStack needs to be able to build the package & analyse the source
Based on concept draft for integration scenarios by GovStack and OpenIMIS team
Suggestions for future releases
Please keep in mind that we do not aim to release integrators of BB from any responsibility and caution. Certain criteria are nice to have, but can be checked when the integrator chooses the fitting BB candidate from our marketplace (e.g. according to their security level).
Compliance Concept 1.0 (Purpose: Channel everyone interested to the process with minimal effort)
Differentiate in criteria 3 and 4 ((non-)functional requirements) between required and optional (similar to criterion 1)
Add security requirements
Add documentation requirements (e.g. Documentation on Business Flows, data mapping principles, test cases)
Add maintenance requirement e.g. “Receives regular updates/patches (> every 6 months)”
Compliance Concept 2.0 (Improve quality of being “GovStack compliant”)
Ask for declaration of reference e.g. “At least 1 existing real-life usage/in production usage/real world implementation.”
Make the ecosystem transparent e.g. “Integration is supported by multiple integrators”
Add further requirements in case of FOSS e.g. Public access to code repository, Active repository contributions, OSI approved licence
List of a former draft
Interfaceability (Must): OpenAPI descriptions 3.0.0 or newer and pass all API test scripts either natively or through an adapter (automatic assessment by applicant)
Deployability (Must): Be deployable via container and minimal ansible scripts (self-assessment by applicant)
Usage Rights (Must): Usage rights are clearly defined in a proprietary or FOSS licence (self-assessment by applicant)
Non-Functional (Must): Fulfill “cross-cutting requirements” stated in the Architecture BB specifications (self-assessment by applicant)
Functional (Must): Fulfill “cross-cutting requirements” stated in the respective BB specifications (self-assessment by applicant)
Security (Should): Fulfill ……. (self-assessment by applicant)
Documentation (Should): Manuals and descriptions on …. [e.g. deployment, configuration, functionalities exceeding the specs] are publicly available (self-assessment by applicant)
Maintenance (Should): Receives regular updates/patches (> every 6 months) (self-assessment by applicant)
Reference (Should): At least 1 existing real-life usage/in production usage/real world implementation.
Diverse Ecosystem (Should): Integration is supported by multiple integrators
In case of Open Source (Must)
Public access to code repository
Active repository contributions
OSI approved licence
Useful Attachments
First proof of concept by @Ingmar Vali , here: