grid-cms
v1.5.5
Published
The easiest way to manage data in Firestore.
Downloads
200
Readme
GRID/CMS
The easiest way to manage data in Firestore.
Integrates with Firebase Hosting to provide a simple self-updating CMS with zero maintenance.
Getting started
Go to firebase project (or
firebase init
in a blank folder) and make sure hosting and Firestore is setup.Then run
npm init cms
and follow instructions.Login and define what data you want exposed in the CMS.
Hosting and config
GRID/CMS will automatically read the firebaseConfig from the hosting environment, unless specifically defined. This makes it easy to have prod
, dev
and testing
environments without a bunch of .env
files.
Permissions
The schema will be saved in Firestore (/_CMS_/schema
) and the current user will therefore need read/write access.
If write access is given the user will be able to extend the schema.
If only read access is given, the user will be able to login and manage data but not extend the schema.
An example of admin access for specific user:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{col}/{doc=**} {
allow read, write: if request.auth.token.email == '[email protected]';
}
}
}
A more detailed example of full admin and editor access using Custom Claims:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{col}/{doc=**} {
allow read: if hasRole(['admin','editor']);
allow write: if hasRole(['admin']) || (col != '_CMS_' && hasRole(['editor']));
}
function hasRole(roles) {
return request.auth != null && request.auth.token.get("role", null) in roles;
}
}
}