CKAN Enterprise
CKAN Enterprise
Introduction
CKAN Enterprise is our name for what we plan would become our standard "base" distribution for CKAN going forward:
- It is a CKAN standard code base with micro-services.
- Enterprise grade data catalog and portal targeted at Gov (open data portals) and Enterprise (Data Catalogs +).
- It is also known as Datopian DMS.
Roadmap 2021 and beyond
| Current | CKAN Enterprise | |
|---|---|---|
| Raw storage | Filestore | Giftless |
| Data Loader (db) | DataPusher extension | Aircan |
| Data Storage (db) | Postgres | Any database engine. By default, Postgres |
| Data API (read) | Built-in DataStore extension's API including SQL endpoint | GraphQL based standalone micro-service |
| Frontend (public) | Build-in frontend into CKAN Classic python app (some projects are using nodejs app) | PortalJS or nodejs app |
| Data Explorer | ReclineJS (some projects that uses nodejs app for frontend have React based Data Explorer) | GraphQL based Data Explorer |
| Auth | Traditional login/password + extendable with CKAN Classic extensions | SSO with default Google, Github, Facebook and Microsoft options |
| Permissions | CKAN Classic based permissions | Existing permissions exposed via JWT based authz API |
Timeline 2021
To develop a base distribution of CKAN Enterprise, we want to build a demo project with the features from the roadmap. This way we can:
- understand its advantages/limitations;
- compare against other instances of CKAN;
- demonstrate for the potential clients.
High level overview of the planned features with ETA:
| Name | Description | Effort | ETA |
|---|---|---|---|
| Init | Select CKAN version and deploy to DX | xs | Q2 |
| Blobstore | Integrate Giftless for raw storage | s | Q2 |
| Versioning | Develop/integrate new versioning sys | l | Q3 |
| DataLoader | Develop/integrate Aircan | xl | Q3 |
| Data API | Integrate new Data API (read) | m | Q2 |
| Frontend | Build a theme using PortalJS | s | Q2 |
| DataExplorer | Integrate into PortalJS | s | Q2 |
| Permissions | Develop permissions in read frontend | m | Q4 |
| Auth | Integrate | s | Q4 |
Init
Initialize a new project for development of CKAN Enterprise.
Tasks:
- Boot project in Datopian-DX cluster
- Use CKAN v2.8.x (latest patch) or 2.9.x
- Don't setup DataPusher
- Namespace:
ckan-enterprise - Domain:
enterprise.ckan.datopian.com
Blobstore
See blob storage
Versioning
See versioning
DataLoader
See DataLoader
Data API
- Install new Data API service in the project
- Install Hasura service in the project
- Set it up to work with DB of CKAN Enterprise
- Read more about Data API here
Notes:
- We could experiment and use various features of Hasura, eg:
- Setting up row/column limits per user role (permissions)
- Subscriptions to auto load new data rows
Frontend
PortalJS for the read frontend of CKAN Enterprise. Read more.
DataExplorer
A new Data Explorer based on GraphQL API: https://github.com/datopian/data-explorer-graphql
Permissions
See permissions.
Auth
Next generation, Kratos based, authentication (mostly SSO with no Traditional login by default) with following options out of the box:
- GitHub
- Microsoft
Easy to add:
- Discord
- GitLab
- Slack