Tasks | |
Build |
This solution represents the Provider Feedback code base currently in alpha.
- .NET Core SDK >= 2.1.302
- Docker for X (not required for emailer functions)
- Azure Cosmos DB Emulator (not required for emailer functions)
- Azure Service Bus
The default development environment uses docker containers to host the following dependencies.
- Redis
- Elasticsearch
- Logstash
On first setup run the following command from /setup/containers/ to create the docker container images:
docker-compose build
To start the containers run:
docker-compose up -d
You can view the state of the running containers using:
docker ps -a
Run Azure Cosmos DB Emulator
Please note all the connection string and secrets to API have been removed. This will need updating.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"ASPNETCORE_ENVIRONMENT": "DEV",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"FUNCTIONS_EXTENSION_VERSION": "2.0.12673.0",
"AppInsights_InstrumentationKey": "",
"FeedbackSiteBaseUrl": "localhost:5030",
"EmailBatchSize": "500",
"NotificationApiBaseUrl": "https://at-notifications.apprenticeships.sfa.bis.gov.uk",
"ClientToken": "",
"InviteEmailerSchedule": "0 */10 10-11 * * MON-FRI",
"ReminderEmailerSchedule": "0 3/10 10-11 * * MON-FRI",
"DataRefreshSchedule": "0 0 3 * * MON-FRI",
"AppName": "das-provide-feedback-emailer",
"LogDir": "C:\\Logs\\ESFA\\Provide Feedback\\Employer",
"ServiceBusConnection": "",
"RetrieveFeedbackAccountsQueueName": "retrieve-employer-accounts",
"ProcessActiveFeedbackQueueName": "process-active-feedback",
"GenerateSurveyInviteMessageQueueName": "generate-survey-invite",
"AccountRefreshQueueName": "refresh-account",
"RetrieveProvidersQueueName": "retrieve-providers"
},
"EmailSettings": {
"BatchSize": 5,
"FeedbackSiteBaseUrl": "localhost:5030",
"ReminderDays": 14,
"InviteCycleDays": 30
},
"ConnectionStrings": {
"EmployerEmailStoreConnection": "Data Source=(localdb)\\ProjectsV13;Initial Catalog=ESFA.DAS.EmployerFeedbackEmail.Database;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultipleActiveResultSets=true;MultiSubnetFailover=False",
"Redis": "localhost:6379"
},
"NotificationApi": {
"BaseUrl": "https://at-notifications.apprenticeships.sfa.bis.gov.uk",
"ClientToken": "abc123"
},
"AccountApi": {
"ApiBaseUrl": "https://test-accounts.apprenticeships.education.gov.uk",
"ClientId": "",
"ClientSecret": "",
"IdentifierUri": "https://citizenazuresfabisgov.onmicrosoft.com/eas-api",
"Tenant": "citizenazuresfabisgov.onmicrosoft.com"
},
"CommitmentApi": {
"BaseUrl": "https://test-commitments.apprenticeships.education.gov.uk/",
"ClientToken": ""
},
"ProviderApi": {
"BaseUrl": "https://test-fatapi.apprenticeships.education.gov.uk/"
}
}
- Set the connection string to the database in the local.settings.json file under
ConnectionStrings.EmployerEmailStoreConnection
- Create a service bus account on azure subscription
- Set the connection string to service bus account in the local.settings.json file under
Values.ServiceBusConnection
- Create following queues on the service bus account
- retrieve-employer-accounts
- process-active-feedback
- generate-survey-invite
- refresh-account
- retrieve-providers
Application logs are logged to Elasticsearch and can be viewed using Kibana at http://localhost:5601
Licensed under the MIT license