Squidex.Extensionsproject as an example, which also contains a sample plugin.
appSettings.json, command line arguments or environment variables.
appSettingsfile. Because we reference the plugin, it will be automatically copied to the output folder when the build or packaging is executed.
ApiControllerclass. Your controllers are available under the
/apipath, because all other requests will be forwarded to the Management UI. The
ApiControllerenforces this rule and ensures the correct routing.
Squidex.Infrastructure.Assets.IAssetStoreinterface 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.IEventStoreis 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.IEventNotifierinterface. 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.IEventConsumerInfoRepositorydefines the contract for a system to store the current state of each event consumer.
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.
ICustomCommandMiddlewareinterface, that ensures that your commands are running in the correct order.