Changelog
Last updated: July 1, 2023
2023 - June
- User invitations to Twisp go to new console.
- Local docker images support both amd64 and arm64 CPU platforms.
- Search indexes powered by Opensearch added to Twisp.
- Add
money(int, string)
CEL constructor - Trancodes that do not specify journal id post the
DEFAULT
journal
Read more in the full post.
2023 - May
- Run a local instance of Twisp through Docker.
- Create custom indexes for and add
metadata
to ledger entries. - Launched a new version of the Twisp Console. Improved GraphQL environment, new views for navigating accounts and tran codes, and streamlined UI/UX.
- Introduced the Between operator for querying and defining indexes. Use to select ranges of sorted values.
- New ACH workflow for push/pull/cancel operations.
- More reference documentation added, as well as our first two guides.
- Optimizations for account set queries and mutations.
Read more in the full post.
2023 - April
- gRPC APIs for Twisp. Deployed alongside our existing GraphQL APIs. Review the schemas at https://buf.build/twisp/api.
- Custom balances for rolling up balance calculations across user-defined dimensions and filters. Create new custom balances with
createCustomBalance
; query balances withcustomBalance
andcustomBalanceByCode
. - Support updating the entries, params and transaction fields of a transaction code with
updateTranCode
. - Post transactions with a specific version of a tran code: the
postTransaction
mutation now supports atranCodeVersion
parameter. - Fix issue with concurrent put for transactions, ensuring that active records aren't overwritten after a record lock.
Read more in the full post.
2023 - March
- Default journals in every ledger. In many cases, users only need a single journal, so now every ledger will contain a default journal (with code
DEFAULT
). This also simplifies many common queries by making thejournalId
filter option optional - it will use the default journal if not provided. - New
Journal.code
field, an optional unique code for journals. - Support for Global Object Identification in the GraphQL API. All persistent core accounting models in the GraphQL schema now implement the Node interface, meaning that they have a globally unique
id
field and can be queried using the globalQuery.node
field. - Integrated timestamps into transactional operations: mutation operations committed within the same transactional context will have the same
created
andmodified
timestamps in the same way that Postgresnow()
andCURRENT_TIMESTAMP
works. - Configurable account sets with
AccountSetConfig
. For now, theconfig
only has one optionenableConcurrentPosting
that optimizes the account set for a ridiculously high rate of entries written. The tradeoff is that read operations for balances become much more expensive and slow; to be used with caution. - Regional WAFs are deployed in every account/region.
- Suite of Tutorials published on the docs site, including the "Twisp 101" tutorial and a set of "Foundations" tutorials covering the basic operations for the ledger.
- Additional reference documentation on the API covering concepts like pagination and the various error types.
Read more in the full post.
2023 - February
- Historical indexes can be created to query all versions of records' histories. While regular indexes (such as those created by the
schema.createIndex
mutation) will index the most recent version of records, a historical index will index every version. - Indexing & filtering by multiple sort/partition keys in custom indexes. Querying custom indexes accepts a list of
CustomIndexFilter
to enable filtering by on indexes with multiple index keys. - Decimal type IndexKeys allow creating more flexible custom indexes.
- Money type arithmetic & logical operations in CEL. CEL expressions can now perform basic infix operations on money types, e.g.:
money("1.15","EUR") > money("1.14","EUR")
. - Enable AWS Backups for business continuity plans (BCPs).
Read more in the full post.
2023 - January
- Concurrent postings for high throughput accounts allows low cardinality accounts like settlement accounts to have postings at high throughput, while maintaining all transactional guarantees at the cost of slower reads of balances on the account.
- Administrative APIs for managing user access to Twisp for your organization and managing Twisp tenants under your org.
Read more in the full post.