Releases: staticbackendhq/core
v1.5.0
It's been 6 months since the last version was released. Here's what new in v1.5.0.
SQLite database provider
Mainly added to increase the experience of the CLI for local development where the data can persists across server shutdowns.
For apps that do not require huge throughput from the database or if you don't want to pay for a dedicated PostgreSQL or Mongo instance, this could be a good option.
Full-text earch
A simple full-text search is now available for tenants. They way to fill the search index is via server-side function. One good option would be to have functions triggers on the collection
you want to have search on and reacting to the db_created
and db_updated
message. The function to inde is called indexDocument
:
// example of server-side function that would index a "blog" collection
function handle(channel, type, doc) {
// ignore the db_deleted msg for now
if (type == "db_deleted") return;
// you have 1 text field as the full-text index, so add all fields from the document
// the first argument (collection) name must match with the exact same "real" collection name where the document is stored
let text = doc.title + " " + doc.article;
indexDocument("blog", idoc.d, text)
}
Schedule jobs & system messages clean-up
There's been a UI created to schedule jobs. Job schedule uses the cron-like format, for instance running a function each 15 minutes would have the following format: */15 * * * * *.
A global clean-up was made to ensure everything is smooth now with schedule jobs and message passing.
A job can have 3 action type: a) run a server-side function b) publish a message and c) make an HTTP call.
Other new features:
- New UI pages, accounts, users and jobs
- Delete multiple documents based on filters
sendMail
added to server-side function- Added
cacheGet
,cacheSet
,inc
,dec
andpublish
functions to server-side runtime - Added an API endpoint to add a new database to a tenant
- Added a new API for clients to be able to publish message and have system execute function(s) is there's listener for the topic.
Bug fixes
- Additional of linters, so lots of "smaller" code wuality fixes.
- Fixed issue with the memory data provider (introduced by the linter fixes)
- fixed adding scheduled jobs/tasks while system is running
- fixed schedule task runner
Thanks to all contributors, your help is always highly appreciated.
v1.4.3
Small release:
Features:
- Web admin UI is now embedded in the binary
- New count endpoint that returns the document count with optional filters (Thanks to @VladPetriv)
- Importable Go package
Some small issues were fixed.
v1.4.0
It's been six month since the last official release of v1.3. Here's what's new and what was fixed in v1.4.
Thanks to all new contributors 👋 .
Features:
- Dev cache impl now handle pub/sub (thanks @rostikts)
- New server-side runtime function allowing to make HTTP requests (thanks @ksankeerth)
- Magic link to login without entering password
- Clean up log output via zerolog (thanks @VladPetriv)
- Ability to update multiple documents from a query. (thanks @rostikts)
- UI list uploaded files. (thanks @VladPetriv)
- Added
/me
endpoint that returns current user with their role. - Added OAuth login/signup flow (supporting Google, Facebook and Twitter for now)
- Creation of the
config
package to holw all configuration variables - In memory datastore and cache (for local dev / CLI)
Bug fixes:
- Fixed bug when calling List/Query when collection did not exists (thanks @rostikts)
- Fixed a bug with PostgreSQL read/write permission
- Fixed issue when serving local store files.
- Fixed UI displaying internal SB collections
- Fixed Go version in DockerFile (thanks @MyWay)
- Fixed issue with PostgreSQL schema name not starting with a letter
v1.3.0 - Featuring HTML to PDF, resize image and more
In this release we're seeing the apparition of the extra
resources. Those functionalities are more torward common building blocks than infrastructure feature. Here's the new feature and their documentation:
New features
- Resizing image when uploading
- Convert URL to PDF and PNG
- Send SMS text messages
- Create database indexes
- Added Deploy To Heroku and Deploy to Render buttons on GitHub home page
Bug fixes / improvements
- Fix a small bugs when using custom permission and where clauses for queries (MongoDB impl)
- Added new Redis environment variable to work better with Heroku
REDIS_URL
- Fixed an issue with MongoDB server-side function and miss-match data-type
Client libraries
Make sure to update to the latest version of the client libraries for the server-side Go and Node clients as well as the client-side JavaScript client.
StaticBackend v1.2.1
- Fixed issue with form submission (thanks c-nv-s)
- Fixed issue with the
query
function inside the server-side runtime
function execution. - Added PostgreSQL indexes when creating base tables on the
account_id
and
added indexes for thesb
schema.
v1.2.0 - Featuring PostgreSQL support
This is certainly a major release, but since no breaking changes were introduced there's no reason to bump major version.
Introducing support for PostgreSQL
This release introduce the support to a completely new data store option using PostgreSQL.
In fact the default data store option in the docker-compose-demo.yml
file uses PostgreSQL now.
You'll need to add an environment variable DATA_STORE
to indicate which database engine you want StaticBackend to use.
DATA_STORE=pg
or
DATA_STORE=mongo
By default, all collection names will be striped from their specific security model when creating PostgreSQL tables or MongoDB collection.
By default the security model allow all account users to read document and only the owner to write.
If you provide custom security model for a repository with reponame_770_
the table/collection name in the database will be reponame
without the security indicator.
To continue to be backward compatible and leave the security indicator in the table/collection names you may use this environment variable:
KEEP_PERM_COL_NAME=yes
Atomic worker queue
We've added a simple work queue that guarantees only one worker will receive the job to be done.
Only available in our Go library at the moment.
Listening to work:
go backend.WorkerQueue(rootToken, "topic", function_to_call)
It's topic based, whenever you queue a job in a topic only one worker will receive it.
Queueing jobs:
err := backend.QueueWork(rootToken, "topic", "data as string")
The worker dequeue function:
func function_to_call(val string) {
// do something with the value
// no need to acknoledge
// job is already removed from queue
}
The worker queue will be added soon to other server-side libraries.
As always, feedback and any help spreading the words always appreciated.
Also, contributing should start to be more easier now with all the tests coverage.
v1.1.0 - Stable version
This version mark the stable version of all API. There will not be any breaking changes for the duration of the v1
.
- Added password reset flow
- Added a bulk insert function
- Added an increase function for atomic inc/dec
All client library will be updated to v1.1.0 and will all have the same set of exposed functionalities
binary-for-linux-32-bit.gz
binary-for-linux-64-bit.gz
binary-for-mac-64-bit.gz
binary-for-windows-32-bit.exe.gz
binary-for-windows-64-bit.exe.gz
.
v1.0.1
- Server-side function runtime allows to run JavaScript code on event/schedule
binary-for-linux-32-bit.gz
binary-for-linux-64-bit.gz
binary-for-mac-64-bit.gz
binary-for-windows-32-bit.exe.gz
binary-for-windows-64-bit.exe.gz
Task scheduler allows to run function on specifics interval
v1.0.0-alpha
First binary version. There's no requirements for an AWS account so should be easier to get started with the backend.