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