Merge branch 'master' into develop

* master:
  Bump color-string from 1.5.4 to 1.6.0 in /cloud_functions/functions
  Update tweet_release.yml
  Update tweet_release.yml
  Create tweet_release.yml
  Sparks Template
  Update README.md
  Update README.md
  Create README.md
  add multiselect csv parser
This commit is contained in:
Sidney Alcantara
2021-07-31 20:59:38 +10:00
5 changed files with 196 additions and 52 deletions

48
.github/workflows/tweet_release.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
# This is a basic workflow to help you get started with Actions
name: tweet_releases
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]
release:
types:
- published
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
build:
name: Tweet
runs-on: ubuntu-latest
steps:
- name: Post Twitter Status
uses: julb/action-post-twitter-status@v1
env:
twitter_app_consumer_api_key: ${{ secrets.TWITTER_API_KEY }}
twitter_app_consumer_api_secret_key: ${{ secrets.TWITTER_API_SECRET_KEY }}
twitter_app_access_token: ${{ secrets.TWITTER_ACCESS_TOKEN }}
twitter_app_access_token_secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
with:
message: "Testing github action for tweeting new releases and updates to Firetable project"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
name: Tweet
runs-on: ubuntu-latest
steps:
- name: Post Twitter Status
uses: julb/action-post-twitter-status@v1
env:
twitter_app_consumer_api_key: ${{ secrets.TWITTER_API_KEY }}
twitter_app_consumer_api_secret_key: ${{ secrets.TWITTER_API_SECRET_KEY }}
twitter_app_access_token: ${{ secrets.TWITTER_ACCESS_TOKEN }}
twitter_app_access_token_secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
with:
message: "Testing github action for tweeting new releases and updates to Firetable project"

135
README.md
View File

@@ -1,13 +1,34 @@
[![Firetable: Combine the power of Firestore with the simplicity of spreadsheets](https://firetable.io/social-image.jpg)](https://firetable.io)
<h1 align="center">
Firetable
</h1>
<h3 align="center">
Firetable is an open-source platform to unlock the full potential of Google Firestore
</h3>
<p align="center">
With Firetable, non-technical team members can access Firestore data with a permission controlled intuitive UI while developers can build fast on the GCP stack (manage their data models, create and deploy cloud functions, connect to third party apps via webhooks and APIs...and more!) 🚀
</p>
<!-- [![Firetable: Combine the power of Firestore with the simplicity of spreadsheets](https://firetable.io/social-image.jpg)](https://firetable.io) -->
<h3 align="center">
<a href="https://firetable.io">Website</a>
<span> · </span>
<a href="https://discord.gg/B8yAD5PDX4">Discord</a>
<span> · </span>
<a href="https://twitter.com/firetableio">Twitter</a>
</h3>
<p align="center">
<a aria-label="License" href="https://github.com/AntlerVC/firetable/blob/master/LICENSE">
<img src="https://badgen.net/github/license/AntlerVC/firetable" />
<a aria-label="License" href="https://github.com/FiretableProject/firetable/blob/master/LICENSE">
<img src="https://badgen.net/github/license/FiretableProject/firetable" />
</a>
<a aria-label="Commits" href="https://github.com/AntlerVC/firetable/commits/develop">
<img src="https://badgen.net/github/last-commit/AntlerVC/firetable/develop" />
<a aria-label="Commits" href="https://github.com/FiretableProject/firetable/commits/develop">
<img src="https://badgen.net/github/last-commit/FiretableProject/firetable/develop" />
</a>
<a aria-label="Firetable CLI" href="https://npmjs.com/package/firetable">
@@ -16,26 +37,55 @@
</p>
<p align="center">
<a href="https://try.firetable.io" >
<img align="center" alt="Firetable demo GIF" src="https://firetable.io/demo.gif" width="100%">
</a>
</p>
<br/>
<h3 align="center">
<a href="https://try.firetable.io">Live Demo</a>
<span> · </span>
<a href="https://github.com/FiretableProject/firetable/wiki/Getting-Started">Get started</a>
<span> · </span>
<a href="https://github.com/FiretableProject/firetable/issues/new?assignees=&labels=&template=feature_request.md&title=">Feature request</a>
<span> · </span>
<a href="https://github.com/FiretableProject/firetable/issues/new?assignees=&labels=&template=bug_report.md&title=">Report a bug</a>
<span> · </span>
<a href="https://discord.gg/B8yAD5PDX4">Discussions</a>
</a>
</h3>
<br/>
# Features
- Spreadsheet interface for viewing Firestore collections, documents, and
subcollections.
- **Intuitive spreadsheet like interface for Firestore.** With Firetable UI you
can view and directly edit the data in Firestore but not just that, you can
completely manage your existing data model or create from scratch.
- Add, edit, and delete rows
- Sort and filter by row values
- CRUD operations on your data - Add, edit, and delete rows
- Create table collections, add column fields
- Sort and filter data
- Resize and rename columns
- 27 different field types.[Read more](https://github.com/AntlerVC/firetable/wiki/Field-Types)
- **Rich set of data fields.**
[29+ field types](https://github.com/FiretableProject/firetable/wiki/Field-Types)
supported and growing
- Basic types: Short Text, Long Text, Email, Phone, URL…
- Custom UI pickers: Date, Checkbox, Single Select, Multi Select…
- Uploaders: Image, File
- Rich Editors: JSON, Code, Rich Text (HTML)
- Powerful access controls with custom user roles.
[Read more](https://github.com/AntlerVC/firetable/wiki/Role-Based-Security-Rules)
- **Permission controlled views.** You can customize who sees what data and what
action they can take with powerful set of access controls based on custom user
roles.
[Read more](https://github.com/FiretableProject/firetable/wiki/Role-Based-Security-Rules)
- **Bulk data actions.** You can import and export your Firestore data from/to CSV files.
- Supercharge your database with your own scripts.
- **Supercharge your database with your own scripts.**
- Action field: trigger any Cloud Function
- Derivative field: populate cell with value derived from the rest of the
@@ -43,7 +93,7 @@
- Aggregate field: populate cell with value aggregated from the rows
sub-table
- Integrations with external services.
- **Integrations with external services.**
- Connect Table uses Algolia to get a snapshot of another tables row values
- Connect Service uses any HTTP endpoint to get a cell value
@@ -51,30 +101,22 @@
<p align="center">
<a href="https://firebase.google.com/products/firestore">
<img src="https://github.com/AntlerVC/firetable/wiki/images/firebase/firestore.png" alt="Cloud Firestore" width="32%" />
<img src="https://github.com/FiretableProject/firetable/wiki/images/firebase/firestore.png" alt="Cloud Firestore" width="19%" />
</a>
<a href="https://firebase.google.com/products/auth">
<img src="https://github.com/AntlerVC/firetable/wiki/images/firebase/authentication.png" alt="Firebase Authentication" width="32%" />
<img src="https://github.com/FiretableProject/firetable/wiki/images/firebase/authentication.png" alt="Firebase Authentication" width="19%" />
</a>
<a href="https://firebase.google.com/products/functions">
<img src="https://github.com/AntlerVC/firetable/wiki/images/firebase/functions.png" alt="Firebase Functions" width="32%" />
<img src="https://github.com/FiretableProject/firetable/wiki/images/firebase/functions.png" alt="Firebase Functions" width="19%" />
</a>
<a href="https://firebase.google.com/products/hosting">
<img src="https://github.com/AntlerVC/firetable/wiki/images/firebase/hosting.png" alt="Firebase Hosting" width="32%" />
<img src="https://github.com/FiretableProject/firetable/wiki/images/firebase/hosting.png" alt="Firebase Hosting" width="19%" />
</a>
<a href="https://firebase.google.com/products/storage">
<img src="https://github.com/AntlerVC/firetable/wiki/images/firebase/storage.png" alt="Firebase Storage" width="32%" />
<img src="https://github.com/FiretableProject/firetable/wiki/images/firebase/storage.png" alt="Firebase Storage" width="19%" />
</a>
</p>
## [Live demo →](https://try.firetable.io)
<a href="https://try.firetable.io">
<img align="center" alt="Firetable demo GIF" src="https://firetable.io/demo.gif">
</a>
<br />
# Getting started
To set up Firetable, you must be comfortable with working with the command line.
@@ -85,48 +127,43 @@ packages globally.
Weve created the Firetable CLI to automate the steps required to set up
Firetable.
### [**Read the getting started guide →**](https://github.com/AntlerVC/firetable/wiki/Getting-Started)
### [**Read the getting started guide →**](https://github.com/FiretableProject/firetable/wiki/Getting-Started)
<br />
# Documentation
Were still working on improving our documentation and writing more
beginner-friendly guides.
[**Documentation on GitHub Wiki →**](https://github.com/AntlerVC/firetable/wiki)
<br />
[**Documentation on GitHub Wiki →**](https://github.com/FiretableProject/firetable/wiki)
# Issues
[![Open issues](https://badgen.net/github/open-issues/AntlerVC/firetable)](https://github.com/antlervc/firetable/issues)
[![Open issues](https://badgen.net/github/open-issues/FiretableProject/firetable)](https://github.com/antlervc/firetable/issues)
[Create issues and bug reports here.](https://github.com/antlervc/firetable/issues)
Make sure to provide console log outputs and screenshots!
# Roadmap and feature requests
- [Roadmap](https://github.com/AntlerVC/firetable/wiki/Roadmap)
- [View our ideas and feature requests](https://github.com/AntlerVC/firetable/projects/1)
<br />
- [Roadmap](https://github.com/FiretableProject/firetable/wiki/Roadmap)
- [View our ideas and feature requests](https://github.com/FiretableProject/firetable/projects/1)
---
<br />
<!-- # Join Our Community
# About Antler Engineering
<a href="https://discord.gg/B8yAD5PDX4">
<img
src="https://invidget.switchblade.xyz/B8yAD5PDX4"
alt="Join Firetable Open Source Project"
>
</a>
<br> -->
<img src="https://firebasestorage.googleapis.com/v0/b/antler-vc.appspot.com/o/antler-logo.svg?alt=media&token=34db0e2e-1d24-4995-9efa-8bf209c55613" align="right" width="200" height="48" />
# Contributing 🙌
Firetable is created and being actively developed by
[Antler Engineering](https://twitter.com/AntlerEng).
We welcome any contributions from the open source community.
At [Antler](https://antler.co), we identify and invest in exceptional people.
Were a global startup generator and early-stage VC firm that builds
groundbreaking technology companies.
[Apply now](<https://www.antler.co/apply?utm_source=Firetable&utm_medium=website&utm_campaign=Thu%20Apr%2016%202020%2018:00:00%20GMT%2B0200%20(CEST)&utm_content=TechTracking>)
to be part of a global cohort of tech founders.
- **[Good First Issues](https://github.com/FiretableProject/firetable/projects/3)** project is a good place to start for contributing to Firetable.
- For new feature or enhancement, please create an issue first or send us a message on **[Discord](https://discord.gg/B8yAD5PDX4)** so that we can discuss and guide you as needed ahead of you starting the work.

View File

@@ -1464,9 +1464,9 @@ color-name@^1.0.0, color-name@~1.1.4:
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-string@^1.5.2, color-string@^1.5.4:
version "1.5.4"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6"
integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==
version "1.6.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"

View File

@@ -0,0 +1,53 @@
export const dependencies = {
// --- Add your dependencies
// algoliasearch: "^4.8.3",
};
// Define your spark
const sparkName = async (data, sparkContext) => {
// Your spark inputs
const { row, targetPath, fieldsToSync } = data;
const { triggerType, change } = sparkContext;
// ---------------------------------------------
// --- Utilise your dependencies ---
// const algoliasearch = require("algoliasearch");
// ---------------------------------------------
// --- Get the secret from Secrets Manager
// Example: Algolia Secret
// const { getSecret } = require("../utils");
// const { appId, adminKey } = await getSecret("algolia");
// ---------------------------------------------
// --- Connect to any third party extensions ---
// Example Algolia
// const client = algoliasearch(appId, adminKey);
// const _index = client.initIndex(index);
// ---------------------------------------------
// --- Handle required trigger actions ---
switch (triggerType) {
case "create":
// create trigger actions
break;
case "update":
// update trigger actions
break;
case "delete":
// delete trigger actions
break;
default:
break;
}
return true;
};
export default sparkName;

View File

@@ -40,6 +40,12 @@ export const config: IFieldConfig = {
TableEditor: NullEditor,
SideDrawerField,
settings: Settings,
csvImportParser: (v) => {
if (v.includes(",")) {
return v.split(",").map((i) => i.trim());
} else if (v !== "") return [v];
else return v;
},
requireConfiguration: true,
};
export default config;