Skip to content

crate/crate-gc-admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CrateDB Grand Central Admin

This is an administration interface for CrateDB, that aims to be a direct replacement for the original crate-admin (a.k.a. Admin UI).

Architectural Design Choices

GC Admin is open source and will always be open source (Apache 2.0).

GC Admin aims to be embedded within a CrateDB database, as the original crate-admin is. However, the project can also be run standalone, and configured to access CrateDB using Cross-Origin requests.

GC Admin is pure TypeScript/React that runs in a browser (no backend code).

GC Admin exposes a React component library, where components can be re-used in other React applications (i.e. they are used in CrateDB Cloud).

GC Admin has a consistent UX with CrateDB Cloud.

Authentication

GC Admin authenticates to CrateDB using standard HTTP Basic Auth.

Enterprise Features

GC Admin includes certain enterprise features, which require a non-open-source, paid-for application called Grand Central to function. When Grand Central is not present, the admin UI works, but certain features/tabs are inaccessible. Grand Central is always accessed via HTTP(S) Cross-Origin requests (the URL is configurable).

GC Admin authenticates to Grand Central via a JWT token, which must be obtained from CrateDB Cloud.

Install

To install this library you have to run the following command:

yarn add @crate.io/crate-gc-admin

Then, if you are using tailwind, edit your tailwind.config file and add the following:

...
content: [
  ...
  './node_modules/@crate.io/crate-gc-admin/**/*.{js,jsx,ts,tsx}'
]
...

and edit your index.css to import library style:

@import '@crate.io/crate-gc-admin/style.css';

Publish a new version

To publish a new version of the crate-gc-admin you need to

  1. git checkout -b prefix/release-x.y.z
  2. Update package.json with the new version
  3. Update CHANGES.md with a new release section
  4. Commit, push, get approval, merge
  5. Wait for the GitHub Action to automatically publish the new version on NPM.