Skip to content

Releases: staticbackendhq/core

v1.5.0

14 Jun 10:22
Compare
Choose a tag to compare

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 and publish 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

18 Dec 12:06
Compare
Choose a tag to compare

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

04 Sep 12:59
Compare
Choose a tag to compare

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

16 Mar 17:54
Compare
Choose a tag to compare

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

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

22 Feb 16:23
Compare
Choose a tag to compare
  • 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 the sb schema.

v1.2.0 - Featuring PostgreSQL support

19 Feb 11:53
Compare
Choose a tag to compare

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

31 Oct 18:02
Compare
Choose a tag to compare

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

23 Aug 07:23
Compare
Choose a tag to compare

v1.0.0-alpha

29 Jul 11:06
Compare
Choose a tag to compare
v1.0.0-alpha Pre-release
Pre-release

First binary version. There's no requirements for an AWS account so should be easier to get started with the backend.