Tags give the ability to mark specific points in history as being important
-
0.30.0
c537ccdb · ·0.30.0 ### Added - Block(`form`): Add `onLoad` action to load fields without using the `data-loader` block. - App: Add `app.member.current.patch` action. - App: Add `app.member.invite` action. - App: Add `app.member.properties.patch` action. - App: Add `app.member.role.update` action. - App: Add `group.member.delete` action. - App: Add `group.member.role.update` action. - App: Add `sub`, `email_verified`, `zoneinfo` and `role` properties to `app.member` remapper. - App: Resources and assets can now be scoped to a group (previously team). The roles of group members within the group determine who within the group has access to them. - Server: Add permissions concept. - Server: Add predefined app roles that can be inherited. - Server: Apps will now be migrated whenever a breaking change is made to the app definition. A new app snapshot is made. (todo: add ability to approve of the snapshot to be published). - Studio: Add `email` attribute field to SAML secret. The default value used is `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`. - Studio: Add the ability to invite emails to apps with a certain app role, making them app members. - Studio: Add the ability to invite emails to groups with a certain app role, making them group members. - Utils: New endpoint `/api/app-invites/{token}/respond`. - Utils: New endpoint `/api/app-invites/{token}`. - Utils: New endpoint `/api/app-members/{appMemberId}/properties`. - Utils: New endpoint `/api/app-members/{appMemberId}/role`. - Utils: New endpoint `/api/app-members/{appMemberId}`. - Utils: New endpoint `/api/apps/{appId}/auth/email/login`. - Utils: New endpoint `/api/apps/{appId}/auth/email/register`. - Utils: New endpoint `/api/apps/{appId}/demo-groups`. - Utils: New endpoint `/api/apps/{appId}/demo-members`. - Utils: New endpoint `/api/apps/{appId}/groups`. - Utils: New endpoint `/api/apps/{appId}/invites`. - Utils: New endpoint `/api/apps/{appId}/members/current/groups`. - Utils: New endpoint `/api/apps/{appId}/members/current/link`. - Utils: New endpoint `/api/apps/{appId}/resources`. - Utils: New endpoint `/api/group-invites/{token}/respond`. - Utils: New endpoint `/api/group-invites/{token}`. - Utils: New endpoint `/api/group-members/{groupMemberId}/role`. - Utils: New endpoint `/api/group-members/{groupMemberId}`. - Utils: New endpoint `/api/groups/{groupId}/invites`. - Utils: New endpoint `/api/groups/{groupId}/members`. - Utils: New endpoint `/api/groups/{groupId}`. - Utils: New endpoint `/api/training-blocks/{trainingBlockId}`. ### Changed - App: __Breaking(migrated)__ - Remove `appMember` remapper. Use `app.member` instead. - App: __Breaking(migrated)__ - Rename `team.invite` action to `group.member.invite`. - App: __Breaking(migrated)__ - Rename `team.list` action to `group.query`. - App: __Breaking(migrated)__ - Rename `team.members` action to `group.member.query`. - App: __Breaking(migrated)__ - Rename `user.login` action to `app.member.login`. - App: __Breaking(migrated)__ - Rename `user.logout` action to `app.member.logout`. - App: __Breaking(migrated)__ - Rename `user.query` action to `app.member.query`. - App: __Breaking(migrated)__ - Rename `user.register` action to `app.member.register`. - App: __Breaking(migrated)__ - Rename `user.remove` action to `app.member.delete`. - App: __Breaking(migrated)__ - Rename `user` remapper to `app.member`. - App: __Breaking(migrated)__ - Rename `users` property to `members` in app definitions. - Server: __Breaking(migrated)__ - Don't use roles on resource actions in the app definition, use permissions instead. - Server: __Breaking(migrated)__ - Remove special role `$author` in resource roles, use `:own` permissions instead. - Server: __Breaking(migrated)__ - Remove special role `$none`, use `$guest` instead, which is meant for unauthenticated users. - Server: __Breaking(migrated)__ - Remove special roles `$team:member`, `$team:manager`, use roles and group selection instead. - Server: App member accounts are now standalone accounts not requiring a platform user to be connected. This results in all tokens being invalid, requiring the user to logout and log back in again. - Server: Rename Teams to Groups. - Studio: Move layout settings from general tab to style tab. - Utils: Rename endpoint `/api/appCollections/{appCollectionId}/apps/{appId}/pinned` to `/api/app-collections/{appCollectionId}/apps/{appId}/pinned`. - Utils: Rename endpoint `/api/appCollections/{appCollectionId}/apps/{appId}` to `/api/app-collections/{appCollectionId}/apps/{appId}`. - Utils: Rename endpoint `/api/appCollections/{appCollectionId}/apps` to `/api/app-collections/{appCollectionId}/apps`. - Utils: Rename endpoint `/api/appCollections/{appCollectionId}/expert/profileImage` to `/api/app-collections/{appCollectionId}/expert/profile-image`. - Utils: Rename endpoint `/api/appCollections/{appCollectionId}/headerImage` to `/api/app-collections/{appCollectionId}/header-image`. - Utils: Rename endpoint `/api/appCollections/{appCollectionId}` to `/api/app-collections/{appCollectionId}`. - Utils: Rename endpoint `/api/appCollections` to `/api/app-collections`. - Utils: Rename endpoint `/api/apps/import/organization/{organizationId}` to `/api/organizations/{organizationId}/apps/import`. - Utils: Rename endpoint `/api/apps/{appId}/maskableIcon` to `/api/apps/{appId}/maskable-icon`. - Utils: Rename endpoint `/api/apps/{appId}/members/{memberId}/picture` to `/api/app-members/{appMemberId}/picture`. - Utils: Rename endpoint `/api/apps/{appId}/resources/{resourceType}/{resourceId}/history` to `/api/apps/{appId}/resources/{resourceType}/{resourceId}/versions`. - Utils: Rename endpoint `/api/apps/{appId}/saml/{appSamlSecretId}` to `/api/apps/{appId}/secrets/saml/{appSamlSecretId}`. - Utils: Rename endpoint `/api/apps/{appId}/scim/ResourceTypes/{resourceTypeId}` to `/api/apps/{appId}/scim/resource-types/{resourceTypeId}`. - Utils: Rename endpoint `/api/apps/{appId}/scim/ResourceTypes` to `/api/apps/{appId}/scim/resource-types`. - Utils: Rename endpoint `/api/apps/{appId}/scim/Schemas/{schemaId}` to `/api/apps/{appId}/scim/schemas/{schemaId}`. - Utils: Rename endpoint `/api/apps/{appId}/scim/Schemas` to `/api/apps/{appId}/scim/schemas`. - Utils: Rename endpoint `/api/apps/{appId}/scim/Users/{userId}` to `/api/apps/{appId}/scim/users/{userId}`. - Utils: Rename endpoint `/api/apps/{appId}/scim/Users` to `/api/apps/{appId}/scim/users`. - Utils: Rename endpoint `/api/apps/{appId}/scim/serviceProviderConfig` to `/api/apps/{appId}/scim/service-provider-config`. - Utils: Rename endpoint `/api/connect/userinfo` to `/api/apps/{appId}/members/current`. - Utils: Rename endpoint `/api/email/resend` to `/api/auth/email/resend-verification`. - Utils: Rename endpoint `/api/email/reset/request` to `/api/auth/email/request-password-reset`. - Utils: Rename endpoint `/api/email/reset` to `/api/auth/email/reset-password`. - Utils: Rename endpoint `/api/email/verify` to `/api/auth/email/verify`. - Utils: Rename endpoint `/api/email` to `/api/auth/email/register`. - Utils: Rename endpoint `/api/invites/{token}` to `/api/organization-invites/{token}`. - Utils: Rename endpoint `/api/login` to `/api/auth/email/login`. - Utils: Rename endpoint `/api/oauth2/client-credentials/{clientId}` to `/api/users/current/auth/oauth2/client-credentials/{clientId}`. - Utils: Rename endpoint `/api/oauth2/client-credentials` to `/api/users/current/auth/oauth2/client-credentials`. - Utils: Rename endpoint `/api/oauth2/connect/pending` to `/api/auth/oauth2/authorizations/connect`. - Utils: Rename endpoint `/api/oauth2/connect/register` to `/api/auth/oauth2/authorizations/register`. - Utils: Rename endpoint `/api/oauth2/connected` to `/api/users/current/auth/oauth2/authorizations`. - Utils: Rename endpoint `/api/oauth2/consent/agree` to `/api/users/current/auth/oauth2/apps/{appId}/consent/agree`. - Utils: Rename endpoint `/api/oauth2/consent/verify` to `/api/users/current/auth/oauth2/apps/{appId}/consent/verify`. - Utils: Rename endpoint `/api/organizations/{organizationId}/appCollections` to `/api/organizations/{organizationId}/app-collections`. - Utils: Rename endpoint `/api/organizations/{organizationId}/join` to `/api/organization-invites/{token}/respond`. - Utils: Rename endpoint `/api/refresh` to `/api/auth/refresh-token`. - Utils: Rename endpoint `/api/subscribed` to `/api/users/subscribed`. - Utils: Rename endpoint `/api/templates` to `/api/app-templates`. - Utils: Rename endpoint `/api/trainings/{trainingId}/enroll/users` to `/api/trainings/{trainingId}/users`. - Utils: Rename endpoint `/api/trainings/{trainingId}/enroll` to `/api/trainings/{trainingId}/users/current`. - Utils: Rename endpoint `/api/unsubscribe` to `/api/users/current/unsubscribe`. - Utils: Rename endpoint `/api/user/apps/accounts` to `/api/users/current/apps/accounts`. - Utils: Rename endpoint `/api/user/apps/{appId}/account/resend` to `/api/apps/{appId}/auth/email/resend-verification`. - Utils: Rename endpoint `/api/user/apps/{appId}/account/reset/request` to `/api/apps/{appId}/auth/email/request-password-reset`. - Utils: Rename endpoint `/api/user/apps/{appId}/account/reset` to `/api/apps/{appId}/auth/email/reset-password`. - Utils: Rename endpoint `/api/user/apps/{appId}/account/verify` to `/api/apps/{appId}/auth/email/verify`. - Utils: Rename endpoint `/api/user/apps/{appId}/account` to `/api/users/current/apps/{appId}/account`. - Utils: Rename endpoint `/api/user/apps` to `/api/users/current/apps`. - Utils: Rename endpoint `/api/user/email` to `/api/users/current/emails`. - Utils: Rename endpoint `/api/user/organizations` to `/api/users/current/organizations`. - Utils: Rename endpoint `/api/user` to `/api/users/current`. ### Removed - App: __Breaking(*not* migrated)__ - Remove `team.join` action. - App: __Breaking(*not* migrated)__ - Remove `user.create` action. - App: __Breaking(*not* migrated)__ - Remove `user.update` action. Use `app.member.current.patch`, `app.member.role.update` or `app.member.properties.patch` instead. - App: __Breaking(*not* migrated)__ - Remove the `profile` property on the `app.member` remapper (previously `user`). - App: __Breaking(migrated)__ - Remove the `method` property in resource actions. - App: __Breaking(migrated)__ - Remove the `roles` property from resource definitions. - Utils: Remove endpoint `/api/apps/{appId}/seed-assets`. `/api/apps/{appId}/assets` with query parameter `seed` should be used instead. - Utils: Remove endpoint `/api/apps/{appId}/seed-resources/{resourceType}`. `/api/apps/{appId}/resources/{resourceType}` with query parameter `seed` should be used instead. - Utils: Remove endpoint `/api/apps/{appId}/teams/{teamId}/invite`. - Utils: Remove endpoint `/api/apps/{appId}/teams/{teamId}/members`. - Utils: Remove endpoint `/api/apps/{appId}/teams/{teamId}`. - Utils: Remove endpoint `/api/apps/{appId}/teams`. - Utils: Remove endpoint `/api/organizations/{organizationId}/invite`. - Utils: Remove endpoint `/api/training/blocks/{trainingBlockId}`. ### Fixed - App: Apps now consistently handle account linking between multiple login methods. -
0.29.9
fc4cb1eb · ·0.29.9 ### Added - Block(`detail-viewer`): Add support for video asset thumbnails. - Block(`form`): Add support for automatic thumbnail generation on video inputs. - Block(`list`): Add support for displaying a thumbnail image if a video asset is passed to the image property. - Node-utils: Add support for thumbnail assets in `processResourceBody`. - Server: Add a controller for asset by id `HEAD` requests. - Server: Validate imported messages on server side. - Utils: Add an API path for asset by id `HEAD` requests. ### Changed - Block(`list`): Change the request for assets in the header to `HEAD`. - Studio: Only export changed translations. ### Fixed - Block(`detail-viewer`): Don't pass poster if there is no thumbnail link. - Server: Use correct permission for asset delete permission verification. - Server: Verify permissions for creating assets.
-
0.29.8
d674f23f · ·0.29.8 ### Added - Block(`form`): Use the `accept` requirement of input fields to show an icon in the upload button. - Block(`list`): Show the filename and filetype icon in the header of list items, with a header value remapping to an asset id. - App: Unregister service worker in app debug page. - Server: Add `Access-Control-Expose-Headers: 'Content-Disposition'` header to `getAssetById` endpoint. - Utils: Add assets content type and content disposition utils. - Utils: Add functions for mime type operations and icons. ### Changed - Block(`form`): Show the upload button to the right in repeated file inputs. - Block(`form`): Use the mime type of files in the file input to show a placeholder. - App: Make debug page path case insensitive. ### Fixed - Block(`form`): Don't show the message for long submission if there are form errors. - Server: Allow patching resources with assets by name.
-
0.29.5
000b8118 · ·0.29.5 ### Added - Block(`form`): Add search to selection fields. ### Changed - Block(`form`): Allow trying to submit while there are field errors. - Block(`form`): Don't show field error links until the user has tried to submit. - Server: The server would error when receiving `multipart/form-data` from a proxied request action. ### Fixed - Block(`detail-viewer`): Fix the height of displayed non-square images. - Block(`form`): Acknowledge `readOnly` in fieldset fields. - Block(`form`): Disable fieldset and file fields while submitting the form. - Block(`table`): Fix miss-aligned button icon when label is empty. - React-components: Fix behaviour where side menu would not close when clicking a menu item.
-
0.29.0
91a4e83c · ·0.29.0 ### Changed - Server: Migration 0.29.0 has a significant chance to fail due too a large amount of new constraints. The migration however will now be rolled back in case of a failure and log the appriopriate actions to take to clean the database. ### Removed - Server: Removed migration versions `0.9.0` - `0.24.1`. ### Fixed - Server: Loading empty SCIM secrets resulted in an error on the secrets page not allowing to generate a new SCIM secret. - Server: SCIM errors were unhandled causing internal server errors since the error handling middleware was removed in version 0.22.0.
-
0.28.12
44c582ee · ·0.28.12 ### Added - App: Add `hide` property to blocks to enable conditional rendering. - Utils: Add the `array.flatten` remapper. ### Changed - Block(`form`): Change the selection input to also work with unique strings for the ids of the items. - Preact-components: Change the `ImageComponent` to accept an id. - Utils: Change the `string.format` remapper to accept remappers, so it can receive a message id dynamically. ### Fixed - Block(`detail-viewer`): Display the thumbnail if there is no video value. - Block(`form`): Accept asset ids as valid file entry values. - Block(`form`): Make the selection field full width in forms. - Block(`list`): Add some padding to the end of the list to show the dropdown when needed. - React-components: Fix behavior of side menu to no longer immediately hide upon opening code and GUI editors. - React-components: Fix initial state value parameter of the hook to now be passed along to `enabled` state variable. - Studio: Fix bug where right options and blocks buttons permanently lose their text after right bar is closed.
-
0.28.10
7eac0f05 · ·0.28.10 ### Added - Block(`list`): Add `collapsible` and `startCollapsed` properties for collapsing the list into a compact view. - Block(`list`): Add a `groupBy` property to split the list into multiple smaller lists. - Block(`list`): Add a `title` property for a title that shows above the list. - App: Allow sub-page name to be dynamic using Remappers. ### Changed - Server: All emails now use translation files instead of templates. ### Fixed - Block(`form`): Close the selection modal when the `maxItems` requirement is reached. - Node-utils: Deleting seed resources now deletes referencing resources before referenced resources.
-
0.28.9
e3d2f129 · ·0.28.9 ### Added - Block(`list`): Add a `hideOnNoData` property to hide the block if there is no data. - Cli: Get app variables endpoint for dev server. ### Fixed - Block(`form`): Allow selected value to be of type `Blob`. - Block(`form`): Invalidate `tags` and `selection` fields if they are not required, but have `minItems` specified. - Server: Allow to remove core and shared styles from an app.