Browse Source

Changelog for 7.5.0

pull/978/head 7.5.0
Sebastian 3 years ago
parent
commit
954e23845a
  1. 34
      CHANGELOG.md
  2. 4
      backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueActionHandler.cs
  3. 8
      backend/extensions/Squidex.Extensions/Actions/ElasticSearch/ElasticSearchActionHandler.cs
  4. 8
      backend/extensions/Squidex.Extensions/Actions/OpenSearch/OpenSearchActionHandler.cs
  5. 4
      backend/extensions/Squidex.Extensions/Actions/SignalR/SignalRActionHandler.cs
  6. 8
      backend/extensions/Squidex.Extensions/Actions/Typesense/TypesenseActionHandler.cs
  7. 4
      backend/extensions/Squidex.Extensions/Actions/Webhook/WebhookActionHandler.cs

34
CHANGELOG.md

@ -4,6 +4,40 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [7.5.0] - 2023-03-03
### Fixed
* **UI**: Fixed styling of schemas in workflow settings.
* **Contents**: Fixed a bug when permanently deleting a content that was permanently deleted before didn't work.
* **Scripting**: Fixes to the handling of asynchronous tasks in scripts.
### Changed
* **Rabbit MQ**: Removed the RabbitMQ event consumer.
* **Contents**: Allow DateTime fields in sample uniqueness validator.
* **Rules**: Only create enriched content events once for the same trigger type.
* **Schemas**: Added tooltip to field icon in schema editor.
* **Tests**: Improvements to the tests to verify all methods to make an update, delete and so on.
* **UI**
### Added
* **Assets**: Added support for Cloudflare R2.
* **Contents**: New endpoint to stream all content items out using server-sent-events.
* **Rules**: Also trigger rules when a reference has changed.
* **Scripting**: Expose information about deprecated helper methods.
* **Scripting**: Improved the `reject` method to output multiple errors.
* **Scripting**: New method to resolve a single asset.
* **Scripting**: New method to resolve a single reference.
* **UI**: Autocompletion for Preview URLs.
* **UI**: Autocompletion for single line code editors.
* **UI**: Show allowed values in autocompletion.
### Security
* **UI**: Escape HTML in the hightlight pipe, that is used to highlight matching words in search.
## [7.4.0] - 2023-02-01
### Fixed

4
backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueActionHandler.cs

@ -47,7 +47,7 @@ public sealed class AzureQueueActionHandler : RuleActionHandler<AzureQueueAction
requestBody = ToEnvelopeJson(@event);
}
var ruleDescription = $"Send AzureQueueJob to azure queue '{queueName}'";
var ruleText = $"Send AzureQueueJob to azure queue '{queueName}'";
var ruleJob = new AzureQueueJob
{
QueueConnectionString = action.ConnectionString,
@ -55,7 +55,7 @@ public sealed class AzureQueueActionHandler : RuleActionHandler<AzureQueueAction
MessageBodyV2 = requestBody
};
return (ruleDescription, ruleJob);
return (ruleText, ruleJob);
}
protected override async Task<Result> ExecuteJobAsync(AzureQueueJob job,

8
backend/extensions/Squidex.Extensions/Actions/ElasticSearch/ElasticSearchActionHandler.cs

@ -58,7 +58,7 @@ public sealed class ElasticSearchActionHandler : RuleActionHandler<ElasticSearch
contentId = DomainId.NewGuid().ToString();
}
var ruleDescription = string.Empty;
var ruleText = string.Empty;
var ruleJob = new ElasticSearchJob
{
IndexName = await FormatAsync(action.IndexName, @event),
@ -70,11 +70,11 @@ public sealed class ElasticSearchActionHandler : RuleActionHandler<ElasticSearch
if (delete)
{
ruleDescription = $"Delete entry index: {action.IndexName}";
ruleText = $"Delete entry index: {action.IndexName}";
}
else
{
ruleDescription = $"Upsert to index: {action.IndexName}";
ruleText = $"Upsert to index: {action.IndexName}";
ElasticSearchContent content;
try
@ -109,7 +109,7 @@ public sealed class ElasticSearchActionHandler : RuleActionHandler<ElasticSearch
ruleJob.Content = serializer.Serialize(content, true);
}
return (ruleDescription, ruleJob);
return (ruleText, ruleJob);
}
protected override async Task<Result> ExecuteJobAsync(ElasticSearchJob job,

8
backend/extensions/Squidex.Extensions/Actions/OpenSearch/OpenSearchActionHandler.cs

@ -58,7 +58,7 @@ public sealed class OpenSearchActionHandler : RuleActionHandler<OpenSearchAction
contentId = DomainId.NewGuid().ToString();
}
var ruleDescription = string.Empty;
var ruleText = string.Empty;
var ruleJob = new OpenSearchJob
{
IndexName = await FormatAsync(action.IndexName, @event),
@ -70,11 +70,11 @@ public sealed class OpenSearchActionHandler : RuleActionHandler<OpenSearchAction
if (delete)
{
ruleDescription = $"Delete entry index: {action.IndexName}";
ruleText = $"Delete entry index: {action.IndexName}";
}
else
{
ruleDescription = $"Upsert to index: {action.IndexName}";
ruleText = $"Upsert to index: {action.IndexName}";
OpenSearchContent content;
try
@ -109,7 +109,7 @@ public sealed class OpenSearchActionHandler : RuleActionHandler<OpenSearchAction
ruleJob.Content = serializer.Serialize(content, true);
}
return (ruleDescription, ruleJob);
return (ruleText, ruleJob);
}
protected override async Task<Result> ExecuteJobAsync(OpenSearchJob job,

4
backend/extensions/Squidex.Extensions/Actions/SignalR/SignalRActionHandler.cs

@ -52,7 +52,7 @@ public sealed class SignalRActionHandler : RuleActionHandler<SignalRAction, Sign
var target = (await FormatAsync(action.Target, @event)) ?? string.Empty;
var ruleDescription = $"Send SignalRJob to signalR hub '{hubName}'";
var ruleText = $"Send SignalRJob to signalR hub '{hubName}'";
var ruleJob = new SignalRJob
{
@ -64,7 +64,7 @@ public sealed class SignalRActionHandler : RuleActionHandler<SignalRAction, Sign
Targets = target.Split("\n")
};
return (ruleDescription, ruleJob);
return (ruleText, ruleJob);
}
protected override async Task<Result> ExecuteJobAsync(SignalRJob job,

8
backend/extensions/Squidex.Extensions/Actions/Typesense/TypesenseActionHandler.cs

@ -49,7 +49,7 @@ public sealed class TypesenseActionHandler : RuleActionHandler<TypesenseAction,
var indexName = await FormatAsync(action.IndexName, @event);
var ruleDescription = string.Empty;
var ruleText = string.Empty;
var ruleJob = new TypesenseJob
{
ServerUrl = $"{action.Host.ToString().TrimEnd('/')}/collections/{indexName}/documents",
@ -59,11 +59,11 @@ public sealed class TypesenseActionHandler : RuleActionHandler<TypesenseAction,
if (delete)
{
ruleDescription = $"Delete entry index: {action.IndexName}";
ruleText = $"Delete entry index: {action.IndexName}";
}
else
{
ruleDescription = $"Upsert to index: {action.IndexName}";
ruleText = $"Upsert to index: {action.IndexName}";
TypesenseContent content;
try
@ -98,7 +98,7 @@ public sealed class TypesenseActionHandler : RuleActionHandler<TypesenseAction,
ruleJob.Content = serializer.Serialize(content, true);
}
return (ruleDescription, ruleJob);
return (ruleText, ruleJob);
}
protected override async Task<Result> ExecuteJobAsync(TypesenseJob job,

4
backend/extensions/Squidex.Extensions/Actions/Webhook/WebhookActionHandler.cs

@ -44,7 +44,7 @@ public sealed class WebhookActionHandler : RuleActionHandler<WebhookAction, Webh
requestSignature = $"{requestBody}{action.SharedSecret}".ToSha256Base64();
}
var ruleDescription = $"Send event to webhook '{requestUrl}'";
var ruleText = $"Send event to webhook '{requestUrl}'";
var ruleJob = new WebhookJob
{
Method = action.Method,
@ -55,7 +55,7 @@ public sealed class WebhookActionHandler : RuleActionHandler<WebhookAction, Webh
Headers = await ParseHeadersAsync(action.Headers, @event)
};
return (ruleDescription, ruleJob);
return (ruleText, ruleJob);
}
private async Task<Dictionary<string, string>> ParseHeadersAsync(string headers, EnrichedEvent @event)

Loading…
Cancel
Save