On this page
basebox Changes
All notable changes to basebox will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Warning all releases marked as beta are NOT INTENDED FOR PRODUCTION USE.
1.1.1 - 2024-09-10
Added
- Added support for input objects on bucket operations
Fixed
- Fixed issue with INSERT_NESTED gave an error if no parent fields where provided. Is caters for the scenario where a parent only has a primary key that is an ID field or where the user does not want to specify additional fields when inserting and is just creating the record with the ID field.
- Fixed issue with UPDATE_NESTED where no parent fields where updated. This is similar to the INSERT_NESTED issue above.
- If an input object was optional but the arguments within the input object where not, an error would be raised if an operation was sent without this optional field. The system would process the arguments for optionality instead of the parent input object. This has been fixed
1.1.0 - 2024-08-21
Added
- Support for S3 compatible services for media handling (upload etc.)
- New directive @bb_owned_with_access that allows to grant explicit access to other roles on owned records
- New directive @bb_restrict_field that allows to explicitly remove fields from returned JSON data
- New directive @bb_roles to allow users access to specific records
- Orchestrator can now pass results from one operation to another
1.0.3 - 2023-12-15
Added
- Added support to have a microservice as an orchestrator step
- Added
atomic
flag to Orchestrator
1.0.2 - 2023-12-06
Added
- Added
_passthrough_headers
parameter to microservice operation to allow specific HTTP headers to be passed through
Fixed
- Incorrect default config file generated by/for dbproxy (-d argument)
1.0.1 - 2023-11-30
Added
- Allow
UPDATE_NESTED
to have an insert at the top level of the nested resolver
Fixed
- The
WHERE
clause in some commands was left out. Fixed.
1.0.0 - 2023-11-17
Added
- Docker based installation
- Atomic transactions
- Microservices support
- GraphQL complexity checks
- Operation level security
- Support for local public key files for access token validation
Fixed
- Improved misleading/unclear error messages
1.0.0-rc1 - 2023-11-02 [Unreleased]
Added
- First release candidate for verion 1.0.0
0.1.0-beta.23 - 2023-10-02 [Unreleased]
Added
- Allow orchestrator arguments to be nullable
0.1.0-beta.22 - 2023-09-27 [Unreleased]
Fixed
- Issued with hardcoded values in ORCHESTRATORs fixed
- Fix for Nested Updates returning incorrect data. Currently only supports returning one level of data.
0.1.0-beta.21 - 2023-09-08 [Unreleased]
Added
Updated base libraries (secuirty updates)
Fixed
- Added more validation and functionality into nullable operation arguments
- Returning a null value for Void transactions
0.1.0-beta.20 - 2023-09-06
0.1.0-beta.20 - 2023-09-06 [Unreleased]
Fixed
Added check to current user id compiler directive to see if the directive is actually required. This gave an error if the user did not exist already and would cause an issue on user creation.
0.1.0-beta.19 - 2023-09-05 [Unreleased]
Added
- Added the '@currentUserId' compiler directive. This directive is used in a schema to specify the current user of a request without having to pass the value in. This does a mapping between the external IdP identifier (currently the subject in an access token) and the internal user id.
Fixed
- Fixed issue with null arguments in object lists
- Removed "OK" being returned for Void operations
0.1.0-beta.18 - 2023-08-31 [Unreleased]
Added
- Added operation level security - all operations will not be processed unless permissions have been granted in the IdP / via the access token.
Fixed
- Fixed issue with orchestrators not processing variables correctly
0.1.0-beta.17 - 2023-08-28 [Unreleased]
Fixed
- Fixed issue with floating point numbers not being able to accept integer values
- Fixed issue with nested updates not updating their base objects/tables
0.1.0-beta.16 - 2023-08-25 [Unreleased]
Added
- Added nested updates to the compiler.
0.1.0-beta.15 - 2023-08-23 [Unreleased]
Added
- Added
max_request_size
(under [server]) in both the broker and dbproxy configuration files. This sets the maximum payload size allowed per request (i.e. the size of a request cannot be greater than this figure). Themax_request_size
is in bytes and defaults to 256Kb if not present.
Fixed
- Fixed: An orchestrator operation gave an error if any of the underlying step operations returned a void type.
- Fixed: Void Nested Inserts gave an error for operations that returned a Void type.
0.1.0-beta.14 - 2023-08-22 [Unreleased]
Added
- Ownership model for security. Now a user can own their own data. This prevents a user from seeing anyone else's data.
- Added the ability to delete a user from Auth0 using the Auth0 API.
- Added nullable arguments. Now, if an argument is left our of a request, it is checked to see if it is allowed to be nullable. If it is a nullable argument, the argument is removed from the call to the database. This correctly only works for Mutations.
Fixed
- Increased request payload limit. Previously a limit of 256Kb was set, this has been increased to 32Mb to cater for large strings.
0.1.0-beta.13 - 2023-08-12 [Unreleased]
Added
- Added ORCHESTRATOR to dbproxy. Can now handle ORCHESTRATOR requests.
- Added INSERTED_NESTED to dbproxy. Can now handle INSERTED_NESTED request.
- Added additional validation
Fixed
- Fix for nested insert / array handling.
- Fixed bug with ManyToOne joins that were taken as OneToMany joins
- Fixed issue with saving Base64 fields to database, previously gave a conversion error
- Fixed potential dead lock in broker on access token expiration
0.1.0-beta.12 - 2023-07-21 [Unreleased]
Added
- Enum: Allow for enum values to be passed as literal values (i.e. without double quotes) and string values (with double quotes) in GraphQL requests. While GraphQL enum values do not have double quotes according to the specification, this is not possible when using JSON variables as JSON does not support enums or literal values. Furthermore, languages like Javascript do not have enum types and send through enum values as strings.
- Variables: Support for GraphQL variables (in JSON format) has been added.
- Additional trace logging has been added
0.1.0-beta.11 - 2023-07-19
- broker: Updated http server actix-web to 4.3.1
- dbproxy: Updated http server actix-web to 4.3.1
0.1.0-beta.10 2023-07-04
Added
- dbproxy: Added new ORCHESTRATOR resolver that gives users the ability to combine GraphQL operations into a new, atomic operation.
- Compiler: Added Orchestrator settings to resolver file.
Changed
- Compiler: Improved argument validation
0.1.0-beta.9 2023-06-27 [Unreleased]
Changed
- Nested Inserts: Specifiers: Added specifiers to the '_fields' section of nested inserts. These specifiers ('_select' and '_insert') tell the compiler where an object in the section is included as a reference ('_select') or as a nested insert ('_insert'). A reference is useful if a related object already exists and a user would like to reference this object (e.g. in the case of a parent-child relationship, when you insert a child, you need to reference the parent in order to specify who the child belongs to). In the case of a nested insert ('_insert'), this means the object is there to be inserted.
- Nested Inserts: now allows for multiple arguments. This was limited to one argumetn previously.
- Nested Inserts: Removed the '_object' within the '_fields'. This was used previously as a placeholder for '_object' field value in the resolver. This is no longer required and the value is assumed implicitly.
- Improved error messages
Fixed
- Lists: arguments of type List (i.e. arrays) are now better handled as it previously had several issues with where and when they could be used.
0.1.0-beta.8 2023-06-19 [Unreleased]
Changed
- Filters: When one object has a field that is an object (a field object or related object), the fields of the related object can now be used in a filter - this is currently limited to primary keys only.
- GraphQL Input Objects: Added support as arguments to operations
Fixed
- Removed
Void
from being generated in Data Model. Previously created a void domain of type Unknown
0.1.0-beta.7 2023-06-05 [Unreleased]
Fixed
- dbproxy: Re-enabled PostgreSQL peer authentication setting in config file
Changed
- dbproxy, broker: print expected and actual values in error log if token validation fails
0.1.0-beta.6 2023-05-24
Changed
- dbproxy: backwards-incompatible change for the config file syntax. The former config sections
[idp_config]
and[openid_token_validation]
are now merged together in a new section named[oidc_config]
- Changed user information returned after successful login; now, broker returns all information returned from the OpenID Connect provider. More info can be found here.
Added
- broker: Support for two different authentication modes; access token mode and client mode. See our docs for more info.
- broker: Support multiple OAuth2 redirect URLs (see here)
- dbproxy, compiler: Additional validation
- compiler: Extended nested insert functionality
Fixed
- GraphQL compiler: Type map generation
- GraphQL compiler: Query aggregation
0.1.0-beta.4 - 2023-05-09
Added
- Support for a new custom scalar type ("Base64") for storage of long strings in base64 format
- Nested Inserts which allows for multiple inserts into parent/child table relationships
Fixed
- Fixed issues with adding dates and timestamps to the database
- Fixed incorrect aggregation of certain json fields
- Fixed issue with certain select queries giving an error when aggregating results
- Fixed type map not saving the correct types in specific cases
0.1.0-beta.3 - 2023-05-05
- Fixed runtime panic in broker if process exits early due to configuration error
- Corrected broker config file template
- Fixed log messages from basebox libraries not being logged
0.1.0-beta.2
- Added support for Auth0 as authentication provider. See our Auth0 Guide.
- Fixed libssl-1.1 dependency in Linux builds. All Linux builds now link to libssl-3; if you need a version for libssl-1.1, please let us know.
- Added BLL (business logic layer in Python)
- Added
Void
for mutations that do not return any results - Changed return type of top-level operation
- Changed
@bb_resolver
_type field values from lower case to upper case in line with GraphQL enumerated type case convention - When a json response to an operation was previously returned, the key for the operation was the operations return value type instead of the operation's name. Fixed.
- Fixed bug with UUID parameters being submitted to the database as a String
- Added support for argument arrays i.e. sets of arguments for a given field - currently only supports UUID
- Improved default config comments for broker and dbproxy
- Remove trailing slash from broker's
idp_url
config option - Fixed libssl-1.1 dependency in Linux builds. All Linux builds now link to libssl-3; if you need a version for libssl-1.1, please let us know.
- Added Business Logic Layer which allows for business logic to be written in Python
- Added Void type to GraphQL. Type is used in mutations that do not return any values.
0.1.0-beta.1
This is the first public BETA of basebox - it is NOT READY FOR PRODUCTION.
Please send your ideas, questions, wishes, bug reports to support@basebox.io - thank you!