Skip to content

Commit 1430799

Browse files
committed
Merge branch 'master' into Localization
2 parents 35d16cb + 06c8c14 commit 1430799

File tree

538 files changed

+24165
-11039
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

538 files changed

+24165
-11039
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ Tasks/AppCenterTestV1/ @imenkov @lucen-ms @DergachevE
1818
Tasks/ArchiveFilesV2/ @microsoft/akvelon-build-task-team
1919

2020
# DRI Rotation for @microsoft/release-management-task-team : DRI-ReleaseManagement
21+
Tasks/AzureAppConfigurationV10/ @microsoft/azure-appconfig-team
22+
23+
Tasks/AzureAppConfigurationPushV10/ @microsoft/azure-appconfig-team
2124

2225
Tasks/AzureAppConfigurationSnapshotV1/ @microsoft/azure-appconfig-team
2326

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Azure AppConfiguration Push
2+
3+
### Overview
4+
5+
This task is used to push key-values from a configuration file to your [App Configuration store](https://learn.microsoft.com/azure/azure-app-configuration/quickstart-azure-app-configuration-create).
6+
7+
## Contact Information
8+
9+
Please report a problem to <[email protected]> if you are facing problems in making this task work. You can also share feedback about the task like, what more functionality should be added to the task, what other tasks you would like to have, at the same place.
10+
11+
## Pre-requisites for the task
12+
The following need to be set up for the task to work properly.
13+
14+
- Azure Subscription - [create one for free](https://azure.microsoft.com/free/)
15+
- App Configuration store - [create one for free](https://learn.microsoft.com/azure/azure-app-configuration/quickstart-azure-app-configuration-create#create-an-app-configuration-store)
16+
- Azure DevOps project - [create one for free](https://go.microsoft.com/fwlink/?LinkId=2014881)
17+
- [Azure Pipelines agent version 2.144](https://github.com/microsoft/azure-pipelines-agent/releases/tag/v2.144.0) or later
18+
- Service connection - [create a service connection](https://learn.microsoft.com/azure/azure-app-configuration/push-kv-devops-pipeline#create-a-service-connection)
19+
20+
### Parameters of the task:
21+
22+
The parameters of the task are described below. The parameters listed with a \* are required parameters for the task:
23+
24+
* **Azure Subscription**\*: Select the AzureRM Subscription. If none exists, then click on the **Manage** link, to navigate to the Services tab in the Administrators panel. In the tab click on **New Service Connection** and select **Azure Resource Manager** from the dropdown.
25+
26+
* **App Configuration Endpoint**\*: Select the endpoint of the App Configuration store to which the key-values will be pushed.
27+
28+
* **Configuration File Path**\*: Provide the path to your configuration file.
29+
30+
* **File Content Profile**\*: Provide the Configuration File's [content profile](https://learn.microsoft.com/azure/azure-app-configuration/concept-config-file). Default value is **Default**.
31+
- **Default**: Refers to the conventional configuration file formats that are directly consumable by applications.
32+
- **KVSet**: Refers to a [file schema](https://github.com/Azure/AppConfiguration/blob/main/docs/KVSet/KVSet.v1.0.0.schema.json) that contains all properties of an App Configuration key-value
33+
34+
* **Import Mode**\*: Provide the import mode. The default value is **Ignore Match**.
35+
- **All**: Imports all key-values in the configuration file to App Configuration.
36+
- **Ignore Match**: Imports only settings that have no matching key-value in App Configuration. Matching key-values are considered to be key-values with the same key, label, value, content type and tags.
37+
38+
* **Dry Run**: Default value is **Unchecked**
39+
- **Checked**: No updates will be performed to App Configuration. Instead any updates that would have been performed in a normal run will be printed to the console for review.
40+
- **Unchecked**: Performs any updates to App Configuration and does not print to the console.
41+
42+
* **Separator**: Provide the separator that should be used to flatten .json and .yml files.
43+
44+
* **Depth**: Provide the depth that the .json and .yml files will be flattened to.
45+
46+
* **Prefix**: Provide a string that will be appended to the beginning of each key pushed to App Configuration Store.
47+
48+
* **Label**: Provide a string that is added to each key-values as the label within the App Configuration Store.
49+
50+
* **Content Type**: Provide a string that is added to each key-value as the content type within the App Configuration store.
51+
52+
* **Exclude feature flags**: Specify whether or not any feature flags provided in the configuration file will be pushed to App Configuration.
53+
54+
* **Use the file path extension to determine the file format**: Specify whether or not to use the file path extension to determine the file format.
55+
56+
* **Delete key-values that are not included in the configuration file**: The behavior of this option depends on the configuration file [content profile](https://learn.microsoft.com/azure/azure-app-configuration/concept-config-file). Default value is **Unchecked**.
57+
- **Unchecked**: Pushes all key-values from the configuration file into the App Configuration store and leaves everything else in the App Configuration store intact
58+
- **Checked**:
59+
- **Default content profile**: Removes all key-values in the App Configuration store that match both the specified prefix and label before pushing new key-values from the configuration file
60+
- **Kvset content profile**: Removes all key-values in the App Configuration store that are not included in the configuration file before pushing new key-values from the configuration file.
61+
62+
* **Tags**: Specify one or more tags that should be added to a key-value. Tags should be of a valid JSON format.
63+
64+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
{
2+
"loc.friendlyName": "Azure App Configuration Push",
3+
"loc.helpMarkDown": "Email [email protected] for questions.",
4+
"loc.description": "Push key-values to an Azure App Configuration instance",
5+
"loc.instanceNameFormat": "Azure App Configuration",
6+
"loc.group.displayName.AppConfiguration": "AppConfiguration",
7+
"loc.group.displayName.Source": "Source",
8+
"loc.group.displayName.Options": "Options",
9+
"loc.input.label.ConnectedServiceName": "Azure subscription",
10+
"loc.input.help.ConnectedServiceName": "Select the Azure Subscription for the Azure App Configuration instance.",
11+
"loc.input.label.AppConfigurationEndpoint": "App Configuration Endpoint",
12+
"loc.input.help.AppConfigurationEndpoint": "Provide the endpoint of an existing [Azure App Configuration](https://docs.microsoft.com/en-us/azure/azure-app-configuration/concept-key-value).",
13+
"loc.input.label.ConfigurationFile": "Configuration File Path",
14+
"loc.input.help.ConfigurationFile": "the path to the configuration file (supported: yaml, json, properties)",
15+
"loc.input.label.UseFilePathExtension": "Use the file path extension to determine the file format",
16+
"loc.input.help.UseFilePathExtension": "Specifies whether or not to use the file path extension to determine the file format",
17+
"loc.input.label.FileFormat": "File Format",
18+
"loc.input.help.FileFormat": "The configuration file format. If no format is provided, then the format defaults to the file extension of the configuration file provided.",
19+
"loc.input.label.FileContentProfile": "File Content Profile",
20+
"loc.input.help.FileContentProfile": "The configuration file's [content profile](https://docs.microsoft.com/azure/azure-app-configuration/concept-config-file)",
21+
"loc.input.label.Separator": "Separator",
22+
"loc.input.help.Separator": "Separator used to flatten the configuration file (json & yaml files). It is required when the depth provided is greater than 1",
23+
"loc.input.label.Depth": "Depth",
24+
"loc.input.help.Depth": "max depth to flatten to in configuration file (json and yaml files)",
25+
"loc.input.label.Prefix": "Prefix",
26+
"loc.input.help.Prefix": "a prefix to append to all keys in the configuration file",
27+
"loc.input.label.Label": "Label",
28+
"loc.input.help.Label": "Specifies which label should be used when selecting key-values from App Configuration. If no label is provided then key-values with the _null_ label will be retrieved. The following characters are not allowed: `,` `*`.",
29+
"loc.input.label.ContentType": "Content Type",
30+
"loc.input.help.ContentType": "a content type to append to all keys in the configuration file",
31+
"loc.input.label.Tags": "Tags",
32+
"loc.input.help.Tags": "Specifies one or more tag that should be added to key-value settings being pushed to App Configuration. Tags should be of a valid JSON format and can span multiple lines. Example: {\"tag1\": \"value1\", \"tag2\": \"value2\"}",
33+
"loc.input.label.ExcludeFeatureFlags": "Exclude feature flags",
34+
"loc.input.help.ExcludeFeatureFlags": "Specifies whether or not any feature flags provided in the configuration file will be pushed to App Configuration.",
35+
"loc.input.label.Strict": "Delete key-values that are not included in the configuration file",
36+
"loc.input.help.Strict": "The behavior of this option depends on the configuration file's content profile.\n 'Default': Any key-values in the store with the specified prefix and label that are not included in the configuration file will be deleted. \n'KVSet': Any key-values in the store that are not included in the configuration file will be deleted.",
37+
"loc.input.label.DryRun": "Dry run",
38+
"loc.input.help.DryRun": "When dry run is enabled, this task will not perform any updates to App Configuration. Instead, any updates that would have been performed in a normal run will be printed to the console for review",
39+
"loc.input.label.ImportMode": "Import Mode",
40+
"loc.input.help.ImportMode": "Determines the behavior when importing key-values. The default value, 'All' will import all key-values in the input file to App Configuration. 'Ignore-Match' will only import settings that have no matching key-value in App Configuration.",
41+
"loc.messages.SupportedOptionsForFileContentProfile": "Supported options for FileContentProfile are '%s' and '%s', please provide a valid option.",
42+
"loc.messages.UnsupportedOptionsForKVSetProfile": "Options 'Separator', 'Label', 'Content type', 'Prefix', 'Tags' and 'Depth' are not supported when using %s.",
43+
"loc.messages.OnlySupportedImportModeOptions": "Only options supported for Import Mode are '%s' and '%s'.",
44+
"loc.messages.InvalidTagFormat": "Invalid format for parameter 'Tags'.",
45+
"loc.messages.InvalidTagsWithSample": "Invalid format for parameter 'Tags'. Sample 'Tags': {\"name1\": \"value1\", \"name2\":, \"value2\"}.",
46+
"loc.messages.InvalidAppConfigurationEndpoint": "Invalid App Configuration endpoint %s. Please provide a valid App Configuration endpoint.",
47+
"loc.messages.InvalidTypeInTags": "Invalid type in parameter 'Tags'. Only strings supported",
48+
"loc.messages.AzureAppConfigurationPushTaskStartingUp": "Azure App Configuration Push Task is starting up...",
49+
"loc.messages.AzureSubscriptionTitle": "Azure Subscription:",
50+
"loc.messages.AppConfigurationEndpointTitle": "App Configuration Endpoint:",
51+
"loc.messages.StrictTitle": "Strict:",
52+
"loc.messages.FileFormatTitle": "File Format:",
53+
"loc.messages.FileContentProfileTitle": "File Content Profile:",
54+
"loc.messages.DryRunTitle": "Dry Run:",
55+
"loc.messages.ImportModeTitle": "Import Mode:",
56+
"loc.messages.SeparatorTitle": "Separator:",
57+
"loc.messages.LabelTitle": "Label:",
58+
"loc.messages.SuccessfullyUploadedConfigurations": "'%s' key-values were uploaded to Azure App Configuration.",
59+
"loc.messages.FileFormatNotSupported": "File Format %s is not supported. Supported values are: %s, %s and %s",
60+
"loc.messages.AccessDeniedMessage": "Access to the target App Configuration instance was denied. Please ensure the required role assignment is made for the identity running this task.",
61+
"loc.messages.ConflictErrorMessage": "Failed operation for '%s'. The key is read-only. To allow modification unlock it first.",
62+
"loc.messages.AuthenticationError": "Error response: %s\n Status code: %s \nError message: %s",
63+
"loc.messages.AuthenticationErrorRestError": "`\nStatus code: %s \nUrl: %s \nError message: %s \nWWW-Authenticate: %s \nClientRequestId: %s",
64+
"loc.messages.RestError": "A HTTP error occurred \nName: %s \nCode: %s \nStatus code: %s \nUrl: %s \nError message: %s \nClientRequestId: %s",
65+
"loc.messages.UnexpectedError": "An unexpected error occurred. %s."
66+
}

0 commit comments

Comments
 (0)