Stryke Docs - 1.9.0

Stryke Docs - 1.9.0

›Changelog

Overview

  • Overview
  • Quick Start Guide
  • The Playground app

Changelog

  • Stryke Changelog

Developing an App

  • Users Overview
  • Create a new App
  • Entity Definition
  • Actions Definition

    • Actions Definition
    • Scripts and source code
    • Triggers
    • Templates and views
  • Where is your app's data stored?
  • Synchronising app instances

Using an App

  • Stryke App UI
  • Working with your app's data
  • End users
  • Access Control
  • Files

API

  • Stryke API
  • Stryke queries

Developer Tools

  • Tools

Stryke Library

  • Stryke Library Reference

Stryke Changelog

Version 1.9.0


Query criteria grouping and OR logical operator

Query filters can now contain either AND or OR operators. The logical operators also allow to define groups within the filtering criteria.

example
and: [
  { name : { eq : "test"}}, 
  { or : [
      { size: { eq: 100 }}, 
      { size: { eq: 200 }}
    ]}
]

Evaluates to:

(name = "test" AND ( size = 100 OR size = 200))

For more details see the "Logical Operators and Grouping" section under the Query docs.

Performance enhancements on queries that contain lookups

A number of performance enhancements have been implemented to improve the speed of queries that contain lookups in the GraphQL statement.

Version 1.8.0


Performance enhancements for batch record creation and imports

A number of performance enhancements have been implemented to improve the creation of multiple records (or import) within the same request. Especially when triggers are involved in the records' creation process.

Version 1.7.0


CSV and Text return types for Actions

Two action return types have been added: CSV and text. These allow to return a string document from actions that will be handled as either a CSV document or text document when opened from the app's UI. For more details see the "Return Types" section under the Action docs.

Version 1.6.0


Syncing definitions between app instances

This release adds the ability to sync app definitions or "app templates" between distinct app instances. This allows synchronising fields, entities, and code across app instances that are related. For example, development and production instances of the same application. Syncing is currently only available through the Stryke API and can be performed by calling the /sync endpoint on any app. The sync endpoint works in one of two ways:

  1. Syncs the definition of a parent app with the selected child app instance
  2. Updating the definition of an app from an app template JSON document provided in the body to the sync request

When syncing the definition of a parent app with its child, no body is necessary in the /sync request. However the parent app needs to have been previously assigned to the child application via the app instance update endpoint.

Please note that while syncing app definitions does not sync data directly, changing entity definitions can result in changes in the data stored in your app. For more details see the "Synchronising app instances" section.

Version 1.5.0


GraphQL and Stryke Query enhancements - "Any operator"

Two new operators ("Any" and "Not Any") have been added to the filter section of GraphQL queries to support querying for items in a list. "Any" (any) and "Not Any" (nany) can be used on regular fields as well as on lookup fields.

Example:

{
  Receipt(
      filter: { business : { alias: { any : ["shop","store","online retailer"] } } }      
    ) { 
    id 
    alias 
    amount 
  }
}

For full details see the "Supported Operators" under the query section of the documentation.

Version 1.4.0


Bulk record create operation and bulk triggers

Trigger actions have been enhanced to handle multiple records at once (bulk operations). Currently only record creation supports bulkified triggers. When multiple records are created in a single REST request or in a dataset import, the create trigger script will receive all the records under the variable:

stryke.data.new

See the Triggers section for more details.

GraphQL queries enhancements

A new GraphQL query has been added to allow searching for multiple IDs at once.

Example:

{
  Receipt(ids: ["c07a84dc-312c-4c5b-beaa-1677e500cb16", "3c0f8f84-8892-4ed4-86b9-560eacbb75dc"]) { 
    id 
    alias 
    amount 
  }
}

For more details see: Query by IDs

User creation improvement

When the default user of a new application is created its password is defaulted to the same password of the Stryke user that created the application. This should speed up initial access to the application since password reset is no longer required. Resetting the password of the app's default user is still highly recommended.

Version 1.3.0


  • When access control is none GraphQL schema does not include entity
  • Access control fixes for GQL queries

If an entity is not visible to a user, it will not be present under the queries provided by GraphQL. However lookups to that entity in other entities will be visible to allow queries to work properly. In the case of lookups to non visible entities only the ID and Alias of the record will be visible under the queries no more data will be accessible.

  • Lookup validation improvements
  • Hydro Plot Enhancements

Version 1.2.0


  • Added the ability to default the database and file storage that will be used by app instances of a specific user
  • App instance creation improvements
  • Fixes to lookups in GraphQL queries

Version 1.1.0


  • Improvements to the app creation and sign up processes
  • Updates to the playground app
  • Access control fixes for GQL queries

Version 1.0.0


  • Internal infrastructure update to improve scaling and security

Version 0.24.0


  • Add the ability to assign a specific app instance to a specific file storage provider
  • Added support for Azure file storage
  • Fixes and improvements to the app creation process
  • Prevent deleting an entity record if other entities have lookups to it

Version 0.23.0


  • Internal enhancements to support Hydro applications (www.hydrocloud.io)
  • Allow uploading more than 1 file at once from the front end
  • Front end fixes and improvements for date-time fields

Version 0.22.0


CSV Data import enhancements

CSV data import is now available from the default Stryke User Interface under the records list views.

Import button

When developing an app, you can control which entities support records import via the canImportRecords field in the entity metadata. canImportRecords can be edited via the API and via the Stryke user interface under the entity edit screen.

Governor limits have been introduced to control the number of records that can be imported in a single request. Currently, standard subscriptions can import up to 100 records in a single request, whether it is from JSON or CSV payloads.

Version 0.21.0


Lists pagination, filtering and sorting enhancements

Lists have been enhanced in the standard Stryke user interface to support server side pagination (this leverages Stryke's GraphQL API). This dramatically improves the performance of the client for apps that have many records.

Version 0.20.0


Version 0.20.0 brings a lot of powerful enhancements and fixes but contains a breaking change that may require you to update some of your GraphQL queries (in API calls or scripts). If you are using queries with lookup fields in the filter criteria please have a look below at how you should update your code.

  • Stryke query enhancements
    • query by fields of related record (id, alias)
    • LIKE and NOT LIKE operators
    • OFFSET parameter
  • Import data from CSV files
  • App logs API

Stryke query enhancements - Breaking change

Stryke v0.20.0 brings quite a few important enhancements to the GraphQL queries that can be performed via the API or through scripts.

Filter by fields in a related record - Braking change

Until v0.20.0 queries could filter by lookup filed only using the ID of the related record.

The example below performs a query to retrieve all receipts related to a given business as supported by Stryke up to version 0.19.0.

// Stryke v0.19.0 and previous
{
  Receipt(
      filter: { business : { eq: "cca1f06a-985b-4f41-a27d-3df64aac1f50" } }      
    ) { 
    id 
    alias 
    amount 
  }
}

Starting with v0.20.0 the above query needs to be changed to:

// Stryke v0.20.0 and above
{
  Receipt(
      filter: { business : { id: { eq : "cca1f06a-985b-4f41-a27d-3df64aac1f50" } } }      
    ) { 
    id 
    alias 
    amount 
  }
}

This syntax change allows to extend the query to have a criteria that refers to fields other than the ID field. For example:

// Stryke v0.20.0 and above
{
  Receipt(
      filter: { business : { alias: { like : "%shop%" } } }      
    ) { 
    id 
    alias 
    amount 
  }
}

The query above retrieves all receipts whose related businesses contain the word "shop" in their alias.

Currently only the id and alias fields can be used in filter criteria. For more details on query filters and how to apply this new approach see the query docs.

LIKE and NOT LIKE operators

The LIKE operator allows to search for partial string values using '%' wildcards.

See docs for details.

OFFSET parameter

The OFFSET parameter allows to offset the result of a query by 'x' number of records. This is especially useful for paginating records together with the limit parameter.

OFFSET and LIMIT parameters are available in both the Query by filter as well as the Query all queries.

CSV Data import

Starting from Stryke v0.20.0 data can be imported from CSV files using the /data/importdataset endpoint.

Data can be imported for a specific entity at a time. This means that a single CSV file being imported can only contain records for a specific entity. The entity for which records are being imported is specified as a request parameter in the request itself.

The CSV file needs to have as headers the fields of the entity being imported. If more fields are included in the CSV they will be ignored. Stryke will only import data for the fields it recognises for the entity being imported.

If a record being imported has a lookup to another record the CSV data needs to include the valid ID of the lookup record.

Example

Importing records of entity "receipt"

amount,receiptDate,type,business
12.5,2020-02-29T11:34:38.000Z,be4c9be7-74c9-4026-a241-51439bf199b4,
2.5,2020-02-29T12:00:03.000Z,,d0be016f-1ad3-43ad-a387-6aa1e74f682b
10,2020-02-28T11:12:38.000Z,ddef0c02-8587-437a-a2dd-0faf669db305,d0be016f-1ad3-43ad-a387-6aa1e74f682b
52,2020-02-28T19:50:38.000Z,ddef0c02-8587-437a-a2dd-0faf669db305,eb0a4a77-d416-44eb-9399-2ad91d842ac1
5,2020-02-28T18:50:38.000Z,,df9b54cc-639d-42e8-a7e2-04a073f3ab23
7.25,2020-02-27T12:54:38.000Z,,df9b54cc-639d-42e8-a7e2-04a073f3ab23
2.5,2020-02-26T15:25:38.000Z,,df9b54cc-639d-42e8-a7e2-04a073f3ab23
45,2020-01-29T14:25:38.000Z,,df9b54cc-639d-42e8-a7e2-04a073f3ab23
125,2020-01-26T22:59:38.000Z,f4184d59-44c5-4618-b3b6-c759132a35fa,6450cd2f-19a2-4b1d-8bf1-5072851e9a62
1.75,2020-01-13T13:03:38.000Z,f4184d59-44c5-4618-b3b6-c759132a35fa,6450cd2f-19a2-4b1d-8bf1-5072851e9a62

Currently, create triggers will not run when importing records via the /data/import or /data/importdataset endpoints.

App logs API

Stryke v0.20.0 provides a new API to retrieve logs from your app instance. These logs allow you to review and debug activity of your app. The logs API is only accessible by Stryke users and it will return logs for each operation performed against one of your apps (CRUD, script execution, etc).

The app logs API can be accessed via:

https://api.stryke.io/v0/[appinstance]/app-log

← The Playground appUsers Overview →
  • Version 1.9.0
    • Query criteria grouping and OR logical operator
    • Performance enhancements on queries that contain lookups
  • Version 1.8.0
    • Performance enhancements for batch record creation and imports
  • Version 1.7.0
    • CSV and Text return types for Actions
  • Version 1.6.0
    • Syncing definitions between app instances
  • Version 1.5.0
    • GraphQL and Stryke Query enhancements - "Any operator"
  • Version 1.4.0
    • Bulk record create operation and bulk triggers
    • GraphQL queries enhancements
    • User creation improvement
  • Version 1.3.0
  • Version 1.2.0
  • Version 1.1.0
  • Version 1.0.0
  • Version 0.24.0
  • Version 0.23.0
  • Version 0.22.0
    • CSV Data import enhancements
  • Version 0.21.0
    • Lists pagination, filtering and sorting enhancements
  • Version 0.20.0
    • Stryke query enhancements - Breaking change
    • CSV Data import
    • App logs API
Stryke Docs - 1.9.0
Docs
Docs HomeAPI DocsStryke Tools
Community
Stryke HomeTwitterGithub
Contact Us
support@stryke.io
Copyright © 2021 Viroppa