From 82e676f6daa5e5c90e15acf7d0e25d14f756df5b Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Thu, 8 Dec 2022 17:51:42 +0300 Subject: [PATCH] Update "Integration Services" documentation --- docs/en/Audit-Logging.md | 4 ++- docs/en/Integration-Services.md | 56 ++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/docs/en/Audit-Logging.md b/docs/en/Audit-Logging.md index b3bc4335e1..5381c93738 100644 --- a/docs/en/Audit-Logging.md +++ b/docs/en/Audit-Logging.md @@ -40,12 +40,14 @@ Here, a list of the options you can configure: * `HideErrors` (default: `true`): Audit log system hides and write regular [logs](Logging.md) if any error occurs while saving the audit log objects. If saving the audit logs is critical for your system, set this to `false` to throw exception in case of hiding the errors. * `IsEnabledForAnonymousUsers` (default: `true`): If you want to write audit logs only for the authenticated users, set this to `false`. If you save audit logs for anonymous users, you will see `null` for `UserId` values for these users. * `AlwaysLogOnException` (default: `true`): If you set to true, it always saves the audit log on an exception/error case without checking other options (except `IsEnabled`, which completely disables the audit logging). +* `IsEnabledForIntegrationService` (default: `false`): Audit Logging is disabled for [integration services](Integration-Services.md) by default. Set this property as `true` to enable it. * `IsEnabledForGetRequests` (default: `false`): HTTP GET requests should not make any change in the database normally and audit log system doesn't save audit log objects for GET request. Set this to `true` to enable it also for the GET requests. -* `DisableLogActionInfo` (default: `false`):If you set to true, Will no longer log `AuditLogActionInfo`. +* `DisableLogActionInfo` (default: `false`): If you set to true, Will no longer log `AuditLogActionInfo`. * `ApplicationName`: If multiple applications saving audit logs into a single database, set this property to your application name, so you can distinguish the logs of different applications. * `IgnoredTypes`: A list of `Type`s to be ignored for audit logging. If this is an entity type, changes for this type of entities will not be saved. This list is also used while serializing the action parameters. * `EntityHistorySelectors`: A list of selectors those are used to determine if an entity type is selected for saving the entity change. See the section below for details. * `Contributors`: A list of `AuditLogContributor` implementations. A contributor is a way of extending the audit log system. See the "Audit Log Contributors" section below. +* `AlwaysLogSelectors`: A list of selectors to save the audit logs for the matched criteria. ### Entity History Selectors diff --git a/docs/en/Integration-Services.md b/docs/en/Integration-Services.md index 7f69cd898e..d8968c6ed6 100644 --- a/docs/en/Integration-Services.md +++ b/docs/en/Integration-Services.md @@ -1 +1,55 @@ -# Integration Services \ No newline at end of file +# Integration Services + +ABP Framework provides **Integration Services** for inter-module (or inter-microservice) communications. + +**Integration Services** created to distinguish the [application services](Application-Services.md) that are built for inter-module (or inter-microservice) communications from the application services that are intended to be consumed from a UI or a client application. + +## Marking an Application Service as Integration Service + +You can mark an application service as an integration service by using the `[IntegrationService]` attribute. + +Assume that you have an application service named `ProductAppService`, if you want to mark this application service as an integration service, you should use the `[IntegrationService]` attribute top of the application service class: + +```csharp +[IntegrationService] +public class ProductAppService : ApplicationService, IProductAppService +{ + // ... +} +``` + +If your application service has an interface, like `IProductService` in this example, you can use it on the service interface: + +```csharp +[IntegrationService] +public interface IProductAppService : IApplicationService +{ + // ... +} +``` + +## Enabling/Disabling Audit Logging + +Audit Logging is disabled by default for integration services but it can be enabled by configuring the `AbpAuditingOptions`: + +```csharp +Configure(options => +{ + options.IsEnabledForIntegrationService = true; //enable audit logging for integration services +}); +``` + +* `IsEnabledForIntegrationService` (default: `false`): Disables/enables audit logging for integration services. +* `AlwaysLogSelectors`: A list of selectors to save the audit logs for the matched criteria. + +Please refer to the [audit logging document](Audit-Logging.md) for other options and details. + +## Additional Notes + +* Audit Logging is disabled by default for Integration Services but can be enabled by configuring the `AbpAuditingOptions` as mentioned above. +* If you use the [Auto API Controllers](API/Auto-API-Controllers.md) feature and set an application service as an integration service, URL prefix will be `/integration-api` instead of `/api`. Therefore, you can distinguish internal and external service communications and take additional actions, such as preventing REST API calls for integration services out of API Gateway. + +## See Also + +* [Application Services](Application-Services.md) +* [Auto API Controllers](API/Auto-API-Controllers.md) \ No newline at end of file