HSP Marketplace
The public HSP Marketplace and interface-compliant implementations (hereafter: "Marketplace") provides an "App Store"-like experience for providers organizations to rapidly discover, deploy, configure and operate complex health IT services with a modern web-based UI. Unlike systems such as SMART-on-FHIR, the HSP Marketplace is more than a gallery of front-end only UIs. The Marketplace facilitates frontend and backend applications, broad declarative service dependencies far beyond FHIR (and HL7), and works on both public cloud and private infrastructure environments.
HSPC's public Marketplace instance also allows for member organizations to submit their own Open Source services for publication in the catalog, according to the broader policies of and manual approval by HSPC. Once a service has been approved for publication, any Marketplace user with a compatible operating environment may directly deploy the service to their local environment directly within the web-based UI. This core workflow is the primary means for deploying implementations of HSSP building blocks in a managed, automated and interoperable manner independently of underlying cloud or hosting infrastructure.
Architectural Overview
Technologically, the Marketplace is the sum of a:
- Client, such as the official web-based UI. The client access a..
- Web service implementing the REST API specification. This includes all endpoints for discovery and management of published Service container images, and is a relying party to an externally-preconfigured OpenID Connect Identity Provider SSO system according to the OAuth 2 specification. The web service manage a..
- Underlying database, such as the reference RDBMS PSM based on the generic PIM.
Core Concepts
Unauthenticated Users may search the published Service catalog in a read-only manner from any number of UI clients, and explore the underlying Dependencies, runtime requirements and Permissions needed to run of any given service in an HSP-compliant infrastructure Platform. Authenticated Users MAY optionally deploy and manage their Service instances via the Marketplace when an Agent process is running in the Users local infrastructure and is able to communicate with the Marketplace.
Users registering on behalf of ISVs CAN declare Services and individual Builds via API, and MAY be allowed to perform the same functions via consolidated capability statements developed as a static supplementary file to a container image. Either way, these data include the public location of the container image, its exposed Interfaces and Interface Dependencies, runtime characterists such as minimum acceptable Configuration(s), and requisite Permissions such as outbound Internet access.
User Interface
The Marketplace UI provides end-user functional to:
- Search and browse the service registry.
- Verify service compatibility against the user's registered environments.
- Deploy, update and remove services from the user's registered environments.
- Manage user accounts and system objects, for those users with administrative privileges.
- Submit new services for review and publication to the live registry.
The UI connects to the web service using REST principles and does not have direct access to any database.
Web Service
The web service is an API-only application supporting REST endpoints and JSON-formatted content that is agnostic to the specific client UI implementation. Functionally, it provides:
- Cataloging of known published HSP-compliant service images.
- Registration of and management of user permissions for controller a Platform instance.
- Verification of register service implementations against standard interface smoke tests.
- Resolution of service dependences within your local platform for configuration import/export.
- Additional management and service APIs, some of which may be proprietary to the local implementation.
It is an API-only web service and does not provide any form of UI.
API Summary
Several documents on API usage are available, with a normative version pending on stabilization.
- Resource/Verb endpoint dump: https://github.com/preston/hsp-marketplace-server/blob/master/doc/routes.txt
- A Postman tutorial, not currently published for security reasons. Ask Preston Lee for a copy until this is published.
Underlying Database
Platform Independent Model
All types have created_at and updated_at datetime fields that have been omitted for brevity.
Platform Specific Model
A reference RDMBS model for PostgreSQL v9.5+ is included with the web service reference. v9.5 (or later) is required due to usage of native JSON columns not as well supported in earlier versions. A generated model-driven diagram is available here: https://github.com/preston/hsp-marketplace-server/blob/master/doc/models_complete.svg Small differences from the PIM exist, but are minor and of no practical concern.