-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(webhook-custom-actions): use webhook nocode smart actions configured in the frontend #671
feat(webhook-custom-actions): use webhook nocode smart actions configured in the frontend #671
Conversation
…ured in the frontend Linked to CU-860qgzbzg
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Romain made a few comments. Let's talk about it if you want.
packages/agent/src/services/model-customizations/webhook-executor.ts
Outdated
Show resolved
Hide resolved
await superagent.post(action.configuration.url).send(body); | ||
} | ||
|
||
export default function createWebhookExecutor<S extends TSchema = TSchema>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose you do this so that you can add the action directly.
We tend to avoid indirection
Something in the lines of
for (const action of actions)
addAction(ctx => executeWebhook(action, ctx))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed it, I still need to simplify the interface but the idea is here
packages/agent/src/services/model-customizations/webhook-executor.ts
Outdated
Show resolved
Hide resolved
packages/agent/src/services/model-customizations/webhook-executor.ts
Outdated
Show resolved
Hide resolved
packages/agent/src/services/model-customizations/webhook-executor.ts
Outdated
Show resolved
Hide resolved
import createWebhookExecutor from './webhook-executor'; | ||
import { AgentOptionsWithDefaults } from '../../types'; | ||
|
||
function translateScope(scope: `${ConfigurationScope}`): ActionScope { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not use the ActionScope type in the first place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The API uses single
, global
and bulk
everywhere, whereas the agent uses Single
, Global
and Bulk
with a capital first letter :'(
In addition to that, ActionScope
is declared in the datasource-toolkit
which is not a dependency of forestadmin-client
.
packages/forestadmin-client/src/model-customizations/model-customization-with-cache.ts
Outdated
Show resolved
Hide resolved
packages/agent/src/services/model-customizations/action-customization.ts
Show resolved
Hide resolved
…the API as soon as possible and handle composite ids
const primaryKeys = SchemaUtils.getPrimaryKeys(context.collection.schema) as TFieldName< | ||
S, | ||
Extract<keyof S, string> | ||
>[]; | ||
|
||
const records = await context.getRecords(primaryKeys); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👌 Super clean !
scope: configuration.scope | ||
? ((configuration.scope.slice(0, 1).toUpperCase() + | ||
configuration.scope.slice(1)) as ActionScope) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🐐
get schema(): CollectionSchema { | ||
return this.collection.schema; | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would have preferred a higher API level getter.
Something like:
get getPrimaryKeys() {
return SchemaUtils.getPrimaryKeys(this.collection.schema);
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But I guess that your version offers more possibilities in the end.
const configuration = modelCustomization.configuration as WebhookActionConfigurationApi; | ||
const mappedConfiguration: WebhookActionConfiguration = { | ||
...configuration, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const configuration = modelCustomization.configuration as WebhookActionConfigurationApi; | |
const mappedConfiguration: WebhookActionConfiguration = { | |
...configuration, | |
const mappedConfiguration: WebhookActionConfiguration = { | |
...modelCustomization.configuration, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not so simple, because the configuration is also used in lines below and it needs to be casted in the right type.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh god. I missed that. So for now the function is not that generic.
export default class ModelCustomizationFromApiService implements ModelCustomizationService { | ||
constructor(private readonly options: ForestAdminClientOptionsWithDefaults) {} | ||
|
||
async getConfiguration(): Promise<WebhookAction[]> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
async getConfiguration(): Promise<WebhookAction[]> { | |
async getConfiguration(): Promise<ModelCustomization[]> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I set this type on purpose, because today we only have one type that can be returned by this function.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well that weird since the interface says ModelCustomization[]
constructor(private readonly options: ForestAdminClientOptionsWithDefaults) {} | ||
|
||
async getConfiguration(): Promise<WebhookAction[]> { | ||
const result = await ServerUtils.query<ModelCustomization<WebhookActionConfigurationApi>[]>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const result = await ServerUtils.query<ModelCustomization<WebhookActionConfigurationApi>[]>( | |
const result = await ServerUtils.query<ModelCustomization[]>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is also intentional here because we can only have one type here.
function mapApiValues( | ||
modelCustomization: ModelCustomization<WebhookActionConfigurationApi>, | ||
): ModelCustomization<WebhookActionConfiguration> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
function mapApiValues( | |
modelCustomization: ModelCustomization<WebhookActionConfigurationApi>, | |
): ModelCustomization<WebhookActionConfiguration> { | |
function mapApiValues(modelCustomization: ModelCustomization): ModelCustomization { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ✅ Code review
- ✅ Use pure functions when possible
- ✅ Performance concerns
- ✖️ Security concerns
- ✅ The PR tackle one subject only
- ✅ Automatic tests
- ✅ Unit tests
- ✅ Integration tests
-✖️ Manual tests
- ✅ PR title
- ✅ Destination branch
- ✅ PR linked to the clickup task
## [1.2.21-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/example@1.2.20...example@1.2.21-alpha-webhook-custom-actions.1) (2023-04-20) ### Features * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
….1 [skip ci] # [1.9.0-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent@1.8.9...@forestadmin/agent@1.9.0-alpha-webhook-custom-actions.1) (2023-04-20) ### Features * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
…k-custom-actions.1 [skip ci] # [1.7.0-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-customizer@1.6.2...@forestadmin/datasource-customizer@1.7.0-alpha-webhook-custom-actions.1) (2023-04-20) ### Features * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
…stom-actions.1 [skip ci] ## [1.0.28-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-dummy@1.0.27...@forestadmin/datasource-dummy@1.0.28-alpha-webhook-custom-actions.1) (2023-04-20) ### Features * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
…ustom-actions.1 [skip ci] # [1.2.0-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/forestadmin-client@1.1.12...@forestadmin/forestadmin-client@1.2.0-alpha-webhook-custom-actions.1) (2023-04-20) ### Features * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
🎉 This PR is included in version 1.0.5-alpha-webhook-custom-actions.1 🎉 The release is available on npm package (@alpha-webhook-custom-actions dist-tag) Your semantic-release bot 📦🚀 |
…-actions.1 [skip ci] ## [1.1.3-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/plugin-aws-s3@1.1.2...@forestadmin/plugin-aws-s3@1.1.3-alpha-webhook-custom-actions.1) (2023-04-20) ### Features * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
…stom-actions.1 [skip ci] ## [1.0.18-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/plugin-flattener@1.0.17...@forestadmin/plugin-flattener@1.0.18-alpha-webhook-custom-actions.1) (2023-04-20) ### Features * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
## [1.3.14-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/example@1.3.13...example@1.3.14-alpha-webhook-custom-actions.1) (2023-06-01) ### Bug Fixes * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
🎉 This PR is included in version 1.3.14-alpha-webhook-custom-actions.1 🎉 The release is available on Your semantic-release bot 📦🚀 |
…stom-actions.1 [skip ci] ## [1.0.31-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-dummy@1.0.30...@forestadmin/datasource-dummy@1.0.31-alpha-webhook-custom-actions.1) (2023-06-07) ### Bug Fixes * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
…-actions.1 [skip ci] ## [1.2.1-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/plugin-aws-s3@1.2.0...@forestadmin/plugin-aws-s3@1.2.1-alpha-webhook-custom-actions.1) (2023-06-07) ### Bug Fixes * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
…ok-custom-actions.1 [skip ci] ## [1.0.8-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/plugin-export-advanced@1.0.7...@forestadmin/plugin-export-advanced@1.0.8-alpha-webhook-custom-actions.1) (2023-06-07) ### Bug Fixes * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
…stom-actions.1 [skip ci] ## [1.0.21-alpha-webhook-custom-actions.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/plugin-flattener@1.0.20...@forestadmin/plugin-flattener@1.0.21-alpha-webhook-custom-actions.1) (2023-06-07) ### Bug Fixes * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
🎉 This PR is included in version 1.0.31-alpha-webhook-custom-actions.1 🎉 The release is available on npm package (@alpha-webhook-custom-actions dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.2.1-alpha-webhook-custom-actions.1 🎉 The release is available on npm package (@alpha-webhook-custom-actions dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.0.8-alpha-webhook-custom-actions.1 🎉 The release is available on npm package (@alpha-webhook-custom-actions dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.0.21-alpha-webhook-custom-actions.1 🎉 The release is available on npm package (@alpha-webhook-custom-actions dist-tag) Your semantic-release bot 📦🚀 |
## [1.3.14](https://github.com/ForestAdmin/agent-nodejs/compare/example@1.3.13...example@1.3.14) (2023-06-08) ### Bug Fixes * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
# [1.10.0](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent@1.9.2...@forestadmin/agent@1.10.0) (2023-06-08) ### Bug Fixes * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
# [1.8.0](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-customizer@1.7.2...@forestadmin/datasource-customizer@1.8.0) (2023-06-08) ### Bug Fixes * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
## [1.0.31](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-dummy@1.0.30...@forestadmin/datasource-dummy@1.0.31) (2023-06-08) ### Bug Fixes * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
# [1.3.0](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/forestadmin-client@1.2.1...@forestadmin/forestadmin-client@1.3.0) (2023-06-08) ### Bug Fixes * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
## [1.2.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/plugin-aws-s3@1.2.0...@forestadmin/plugin-aws-s3@1.2.1) (2023-06-08) ### Bug Fixes * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
## [1.0.21](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/plugin-flattener@1.0.20...@forestadmin/plugin-flattener@1.0.21) (2023-06-08) ### Bug Fixes * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
🎉 This PR is included in version 1.0.8 🎉 The release is available on npm package (@latest dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.3.14 🎉 The release is available on Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.10.0 🎉 The release is available on npm package (@latest dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.8.0 🎉 The release is available on npm package (@latest dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.0.31 🎉 The release is available on npm package (@latest dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.3.0 🎉 The release is available on npm package (@latest dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.2.1 🎉 The release is available on npm package (@latest dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.0.21 🎉 The release is available on npm package (@latest dist-tag) Your semantic-release bot 📦🚀 |
🎉 This PR is included in version 1.6.5 🎉 The release is available on npm package (@latest dist-tag) Your semantic-release bot 📦🚀 |
## [1.4.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-mongoose@1.4.0...@forestadmin/datasource-mongoose@1.4.1) (2023-06-29) ### Bug Fixes * add a timeout on superagent call ([#741](#741)) ([3b85766](3b85766)) * **agent:** add request identifier to context.caller ([#753](#753)) ([19a8618](19a8618)) * **agent:** handle json field in csv export ([#746](#746)) ([8437f02](8437f02)) * **agent:** improve error message when validating projections ([#683](#683)) ([5e1baa9](5e1baa9)) * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **customizer:** crash at startup when using collections with native actions ([#681](#681)) ([abe3edf](abe3edf)) * **customizer:** validate fields on user facing collection interface ([#731](#731)) ([56d4278](56d4278)) * **datasource-dummy:** correct relation definition ([#682](#682)) ([2ff0c9e](2ff0c9e)) * **datasource-sql:** add proxy configuration when computing ssl ([#740](#740)) ([3ca8a5d](3ca8a5d)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** export missing type ([#691](#691)) ([885de9e](885de9e)) * **datasource-sql:** export missing types ([#737](#737)) ([4fa72e3](4fa72e3)) * **datasource-sql:** fix worker crash on authentication testing ([#736](#736)) ([e81f101](e81f101)) * **datasource-sql:** improve management of literal values to avoid bugs when introspection is stringified ([#720](#720)) ([615dcda](615dcda)) * **datasource-sql:** improve the connect management errors ([#721](#721)) ([1128e49](1128e49)) * **datasource-sql:** repair sqlite support ([#733](#733)) ([a1e1a86](a1e1a86)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * **ds-sql:** close the proxy when sequelize instance closes ([#694](#694)) ([d31276c](d31276c)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **in-app-onboarding:** do not force skipLibCheck on customers TS configuration ([#680](#680)) ([c374117](c374117)) * **rename field decorator:** throw when put space inside fieldName ([#748](#748)) ([5793eff](5793eff)) * **security:** patch semver dependency vulnerabilities ([#749](#749)) ([b0617c1](b0617c1)) * **typings:** allow incomplete records to be passed to collection.create ([#700](#700)) ([95483e2](95483e2)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * **agent:** allow to create update record custom actions from the frontend ([#729](#729)) ([e06ac79](e06ac79)) * **agent:** no-code update record should handle errors correctly ([#747](#747)) ([6c5e344](6c5e344)) * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **datasource-sql:** create a ssh tunnel when a user provide ssh options ([#730](#730)) ([a188765](a188765)) * **datasource-sql:** enable to proxify the tcp connection by a socks5 proxy ([#690](#690)) ([971a712](971a712)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * handle field names containing underscores on update record actions ([#735](#735)) ([d5d7661](d5d7661)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
## [1.3.2](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.3.1...@forestadmin/datasource-sequelize@1.3.2) (2023-06-29) ### Bug Fixes * add a timeout on superagent call ([#741](#741)) ([3b85766](3b85766)) * **agent:** add request identifier to context.caller ([#753](#753)) ([19a8618](19a8618)) * **agent:** handle json field in csv export ([#746](#746)) ([8437f02](8437f02)) * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **customizer:** validate fields on user facing collection interface ([#731](#731)) ([56d4278](56d4278)) * **datasource-sql:** add proxy configuration when computing ssl ([#740](#740)) ([3ca8a5d](3ca8a5d)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** export missing type ([#691](#691)) ([885de9e](885de9e)) * **datasource-sql:** export missing types ([#737](#737)) ([4fa72e3](4fa72e3)) * **datasource-sql:** fix worker crash on authentication testing ([#736](#736)) ([e81f101](e81f101)) * **datasource-sql:** improve management of literal values to avoid bugs when introspection is stringified ([#720](#720)) ([615dcda](615dcda)) * **datasource-sql:** improve the connect management errors ([#721](#721)) ([1128e49](1128e49)) * **datasource-sql:** repair sqlite support ([#733](#733)) ([a1e1a86](a1e1a86)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * **ds-sql:** close the proxy when sequelize instance closes ([#694](#694)) ([d31276c](d31276c)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **rename field decorator:** throw when put space inside fieldName ([#748](#748)) ([5793eff](5793eff)) * **security:** patch semver dependency vulnerabilities ([#749](#749)) ([b0617c1](b0617c1)) * **typings:** allow incomplete records to be passed to collection.create ([#700](#700)) ([95483e2](95483e2)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * **agent:** allow to create update record custom actions from the frontend ([#729](#729)) ([e06ac79](e06ac79)) * **agent:** no-code update record should handle errors correctly ([#747](#747)) ([6c5e344](6c5e344)) * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **datasource-sql:** create a ssh tunnel when a user provide ssh options ([#730](#730)) ([a188765](a188765)) * **datasource-sql:** enable to proxify the tcp connection by a socks5 proxy ([#690](#690)) ([971a712](971a712)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * handle field names containing underscores on update record actions ([#735](#735)) ([d5d7661](d5d7661)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
## [1.5.1](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-toolkit@1.5.0...@forestadmin/datasource-toolkit@1.5.1) (2023-06-29) ### Bug Fixes * add a timeout on superagent call ([#741](#741)) ([3b85766](3b85766)) * **agent:** add request identifier to context.caller ([#753](#753)) ([19a8618](19a8618)) * **agent:** handle json field in csv export ([#746](#746)) ([8437f02](8437f02)) * **agent:** improve error message when validating projections ([#683](#683)) ([5e1baa9](5e1baa9)) * **agent:** make sure that triggered actions from the frontend execute the right code even after an addition or removal of custom actions ([#706](#706)) ([9581036](9581036)) * **customizer:** crash at startup when using collections with native actions ([#681](#681)) ([abe3edf](abe3edf)) * **customizer:** validate fields on user facing collection interface ([#731](#731)) ([56d4278](56d4278)) * **datasource-dummy:** correct relation definition ([#682](#682)) ([2ff0c9e](2ff0c9e)) * **datasource-sql:** add proxy configuration when computing ssl ([#740](#740)) ([3ca8a5d](3ca8a5d)) * **datasource-sql:** do not crash at connection time when using proxy without providing port ([#705](#705)) ([c3d7d60](c3d7d60)) * **datasource-sql:** export missing type ([#691](#691)) ([885de9e](885de9e)) * **datasource-sql:** export missing types ([#737](#737)) ([4fa72e3](4fa72e3)) * **datasource-sql:** fix worker crash on authentication testing ([#736](#736)) ([e81f101](e81f101)) * **datasource-sql:** improve management of literal values to avoid bugs when introspection is stringified ([#720](#720)) ([615dcda](615dcda)) * **datasource-sql:** improve the connect management errors ([#721](#721)) ([1128e49](1128e49)) * **datasource-sql:** repair sqlite support ([#733](#733)) ([a1e1a86](a1e1a86)) * **datasource-sql:** send proper server name indication on tls connections through socks proxy ([#708](#708)) ([b072cee](b072cee)) * **ds-sql:** close the proxy when sequelize instance closes ([#694](#694)) ([d31276c](d31276c)) * improve errors from webhook endpoints ([#713](#713)) ([7e4f11f](7e4f11f)) * **in-app-onboarding:** do not force skipLibCheck on customers TS configuration ([#680](#680)) ([c374117](c374117)) * **rename field decorator:** throw when put space inside fieldName ([#748](#748)) ([5793eff](5793eff)) * **security:** patch semver dependency vulnerabilities ([#749](#749)) ([b0617c1](b0617c1)) * **typings:** allow incomplete records to be passed to collection.create ([#700](#700)) ([95483e2](95483e2)) * **webhook-custom-actions:** improve error reporting when calling a webhook ([#687](#687)) ([c3f7f9a](c3f7f9a)) * **webhook-custom-actions:** register webhook actions configured from the frontend ([#686](#686)) ([fd9334a](fd9334a)) ### Features * **agent:** allow to create update record custom actions from the frontend ([#729](#729)) ([e06ac79](e06ac79)) * **agent:** no-code update record should handle errors correctly ([#747](#747)) ([6c5e344](6c5e344)) * allow to create webhook actions from the frontend ([#712](#712)) ([750a218](750a218)) * **datasource-sql:** create a ssh tunnel when a user provide ssh options ([#730](#730)) ([a188765](a188765)) * **datasource-sql:** enable to proxify the tcp connection by a socks5 proxy ([#690](#690)) ([971a712](971a712)) * **events-subscription:** allow to instantly refresh customizations when they change ([#704](#704)) ([8f4704e](8f4704e)) * **events-subscription:** allow to instantly refresh permissions when they change ([#692](#692)) ([e108183](e108183)) * handle field names containing underscores on update record actions ([#735](#735)) ([d5d7661](d5d7661)) * **plugin-aws-s3:** add S3Client endpoint option ([#718](#718)) ([f725bbe](f725bbe)) * **webhook-custom-actions:** use webhook nocode smart actions configured in the frontend ([#671](#671)) ([7629699](7629699))
Linked to CU-860qgzbzg
Definition of Done
General
Security