Squidex.Extensions
project as an example, which also contains a sample plugin.netcoreapp3.0
.Squidex.Domain.Apps.Entities
Squidex.Web
appSettings.json
, command line arguments or environment variables.Squidex
project.appSettings
file. Because we reference the plugin, it will be automatically copied to the output folder when the build or packaging is executed.ApiController
class. Your controllers are available under the /api
path, because all other requests will be forwarded to the Management UI. The ApiController
enforces this rule and ensures the correct routing.Squidex.Infrastructure.Assets.IAssetStore
interface is used to encapsulate storage solutions for assets. Currently there are the following implementations:AzureBlobAssetStore
: Stores the assets in azure blob storage.GoogleCloudAssetStore
: Stores the assets in Google cloud.MongoGridFsAssetStore
: Stores the assets in MongoDB using GridFS.FolderAssetStore
: Stores the assets in the file system.Squidex.Infrastructure.CQRS.Events.IEventStore
is our abstraction for different event store implementations. You can append to events, query them or subscribe to events. Dependending on your implementation you might want to use the pub-sub system for subscriptions. The notification mechanism is provided by the Squidex.Infrastructure.CQRS.Events.IEventNotifier
interface. Currently there are the following implementations:Squidex.Infrastructure.CQRS.Events.MongoEventStore
: Implementation for MongoDb.Squidex.Infrastructure.CQRS.Events.GetEventStore
: Implementation for EventStore.Squidex.Infrastructure.CQRS.Events.IEventConsumerInfoRepository
defines the contract for a system to store the current state of each event consumer.Squidex.Infrastructure.Assets.IAssetThumbnailGenerator
interface encapsulates image transformations. We only have an implementation for ImageSharp: https://github.com/SixLabors/ImageSharp​Squidex.Domain.Apps.Entities.Assets.Repositories.IAssetRepository
: Stores metadata about assets such as names and sizes, but not the content itself. Can be challenging to implement the filtering.Squidex.Domain.Apps.Entities.Contents.Repositoriess.IContentRepository
: Stores the content itself. Can be challenging to implement the filtering.Squidex.Domain.Apps.Read.History.Repositories.IHistoryEventRepository
: Stores basic history events to show them in the UI.Squidex.Domain.Apps.Entities.Rules.Repositories.IRuleEventRepository
: Stores the rule events, like an internal job queue.Squidex.Infrastructure.States.IStore
: Key value store for json objects. Contains everything else like comments, apps, schemas, rules, custom indices and settings.Squidex.Infrastructure.UsageTracking.IUsageTracking
: Stores historic usage information and performance metrics.ICustomCommandMiddleware
interface, that ensures that your commands are running in the correct order.Complete()
.