Skip to content

Commit 4edbcdd

Browse files
committed
Release v0.3.0
1 parent f68d5c6 commit 4edbcdd

File tree

15 files changed

+283
-130
lines changed

15 files changed

+283
-130
lines changed

Documentation/APIReference.md

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,14 @@ azure.identity.CredentialBuilderBase is a class.
728728
729729
```
730730

731+
*azure.identity.ManagedIdentityCredentialBuilder.resourceId*
732+
733+
```notalanguage
734+
RESOURCEID Sets client id
735+
An updated ManagedIdentityCredentialBuilder is returned.
736+
737+
```
738+
731739

732740
#### azure.identity.ChainedTokenCredential
733741

@@ -900,7 +908,7 @@ azure.identity.SharedTokenCacheCredential.restFlow is an undocumented builtin st
900908

901909
```notalanguage
902910
GETCLIENTID Gets the client ID of user assigned or system assigned identity
903-
The accountName is returned as a character vector.
911+
The client ID is returned as a character vector.
904912
905913
```
906914

@@ -5749,7 +5757,7 @@ Logger.warning is a function.
57495757
installation of the storage explorer in the configuration file.
57505758
57515759
By default the MATLAB path will be searched for a configuration file called
5752-
settings.json, however an alternative filename can be provided as
5760+
storagesettings.json, however an alternative filename can be provided as
57535761
an argument to this function.
57545762
57555763
```
@@ -5828,8 +5836,9 @@ Logger.warning is a function.
58285836
clientSecret
58295837
interactiveBrowser
58305838
deviceCode
5839+
sharedTokenCache
5840+
managedIdentity
58315841
azurecli
5832-
managedIdentityCredentialBuilder
58335842
58345843
The resulting credential object can then be used by the corresponding client
58355844
builder.
@@ -5945,7 +5954,9 @@ Logger.warning is a function.
59455954
filename using 'ConfigurationFile'. It is also possible to provide
59465955
'Credentials' or 'SASToken' and 'AccountName' as inputs to the function
59475956
directly in case which no configuration file may be needed. See the Name,
5948-
Value pairs below for more details.
5957+
Value pairs below for more details. An endpoint can be set if required
5958+
e.g. if it does not conform to the default https://<AccountName>.<TYPE>.core.windows.net
5959+
pattern, see below for EndPoint details.
59495960
59505961
Additional Name, Value pairs can be supplied to configure non-default
59515962
options:
@@ -5997,10 +6008,19 @@ Logger.warning is a function.
59976008
building the client.
59986009
59996010
'AccountName', explicitly specify the AccountName used to configure the
6000-
endpoint for the client. If not specified createStorageClient uses
6001-
loadConfigurationSettings to load configuration options from
6002-
'ConfigurationFile'. This file must then contain a "AccountName"
6003-
setting.
6011+
account and potentially the endpoint for the client.
6012+
If not specified createStorageClient uses loadConfigurationSettings
6013+
to load configuration options from 'ConfigurationFile'.
6014+
This file must then contain a "AccountName" setting.
6015+
6016+
'EndPoint', enables endpoint naming patterns other than:
6017+
https://<AccountName>.<TYPE>.core.windows.net
6018+
by explicitly specify the EndPoint used to configure the client.
6019+
If 'EndPoint' is not specified as an argument and an 'AccountName' is
6020+
provided then the 'AccountName' will be used to create a default endpoint.
6021+
If neither an 'EndPoint' or 'AccountName' argument is provided the
6022+
corresponding configuration file fields will be used with priority given
6023+
to "EndPoint".
60046024
60056025
See also CONFIGURECREDENTIALS, LOADCONFIGURATIONSETTINGS
60066026
@@ -6033,7 +6053,7 @@ Logger.warning is a function.
60336053
60346054
Other uses of initialize
60356055
6036-
matlab.internal.cef.webwindow/initialize
6056+
dlnetwork/initialize
60376057
matlab.net.http.io.ContentConsumer/initialize
60386058
matlab.net.http.io.ImageConsumer/initialize
60396059
matlab.net.http.io.JSONConsumer/initialize
@@ -6047,11 +6067,11 @@ Logger.warning is a function.
60476067
##### loadConfigurationSettings
60486068

60496069
```notalanguage
6050-
LOADCONFIGURATIONSETTINGS Method to read configuration settings from a file
6051-
By default the file is named settings.json or an alternative name can be
6052-
as an specified argument. JSON values must be compatible with MATLAB JSON
6053-
conversion rules. See jsondecode() help for details. A MATLAB struct is
6054-
returned.
6070+
LOADCONFIGURATIONSETTINGS Method to read a JSON configuration settings from a file
6071+
The file name must be as a specified argument.
6072+
JSON values must be compatible with MATLAB JSON conversion rules.
6073+
See jsondecode() help for details. A MATLAB struct is returned.
6074+
Field names are case sensitive.
60556075
60566076
```
60576077

Documentation/Authentication.md

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ files.
3838

3939
The following authentication approaches are supported:
4040

41-
1. [Azure CLI](#azure-cli)
42-
2. [Managed Identity](#managed-identity)
43-
3. [Client Secret](#client-secret)
44-
4. [Environment Variable](#environment-variable)
45-
5. [Shared Token Cache](#shared-token-cache)
46-
6. [Interactive Browser](#interactive-browser)
47-
7. [Device Code](#device-code)
48-
8. [Default Azure](#default-azure)
49-
9. [Storage Shared Key](#storage-shared-key)
41+
1. [Azure CLI](#azure-cli)
42+
2. [Managed Identity](#managed-identity)
43+
3. [Client Secret](#client-secret)
44+
4. [Environment Variable](#environment-variable)
45+
5. [Shared Token Cache](#shared-token-cache)
46+
6. [Interactive Browser](#interactive-browser)
47+
7. [Device Code](#device-code)
48+
8. [Default Azure](#default-azure)
49+
9. [Storage Shared Key](#storage-shared-key)
5050
10. [Connection String](#connection-string)
5151
11. [Chained Token](#chained-token)
5252

@@ -81,15 +81,24 @@ effect derive its credentials by virtue of the machine hosting it in Azure.
8181

8282
```json
8383
{
84-
"AuthMethod": "ManagedIdentity"
84+
"AuthMethod": "ManagedIdentity",
85+
"ClientId" : "811<REDACTED>8ee",
8586
}
8687
```
8788

89+
In the case of a system assigned managed identity the Azure portal refers to the
90+
ClientId value as the "Application ID". In the case of a user assigned managed
91+
identity the ClientId value is referred to as a "Client ID" in the Azure portal.
92+
93+
An identity's Resource ID can be provided as an alternative to the Client ID.
94+
Both should not be provided. The corresponding configuration file setting field
95+
is ResourceId.
96+
8897
## Client Secret
8998

9099
A Client Secret credential is an Azure AD credential that acquires a token with
91100
a client secret. The secret can be provided in the form as a string specified as
92-
```ClientSecret``` or can be a certificate referred to by ```pemCertificate```.
101+
```ClientSecret``` or can be a certificate referred to by ```PemCertificate```.
93102

94103
### Client Secret ```myServiceSpecificSettings.json```
95104

@@ -99,7 +108,7 @@ a client secret. The secret can be provided in the form as a string specified as
99108
"TenantId" : "99d<REDACTED>1e6",
100109
"ClientId" : "811<REDACTED>8ee",
101110
"ClientSecret": "i6Q<REDACTED>p72", //Either
102-
"pemCertificate": "c:/path/to/clientCert.pem", //Or
111+
"PemCertificate": "c:/path/to/clientCert.pem", //Or
103112
"AuthorityHost": "https://myauthority.com/" //Optional
104113
}
105114
```
@@ -119,6 +128,7 @@ Environment Variable credentials can often be used in CI/CD based processes.
119128
Additional note the support for a certificate file path.
120129

121130
### Environment Variable ```myServiceSpecificSettings.json```
131+
122132
```json
123133
{
124134
"AuthMethod": "Environment",
@@ -169,7 +179,7 @@ authenticate to must have delegated user login permissions and
169179
have```http://localhost:port``` listed as a valid Redirect URI for the Azure
170180
App.
171181

172-
### TokenCachePersistenceOptions
182+
### TokenCachePersistenceOptions (Interactive Browser)
173183

174184
Interactive Browser can optionally be configured with
175185
`TokenCachePersistenceOptions`. When these are configured,
@@ -270,7 +280,7 @@ function myExampleCallbackFunction(deviceCodeInfo)
270280
web(deviceCodeInfo.getVerificationUrl);
271281
```
272282

273-
### TokenCachePersistenceOptions
283+
### TokenCachePersistenceOptions (Device Code)
274284

275285
Device Code can optionally be configured with `TokenCachePersistenceOptions`.
276286
When these are configured, `configureCredentials` will actually build and return
@@ -292,6 +302,7 @@ internal workflow is as follows then:
292302
`DeviceCodeCredential`.
293303

294304
### Device Code ```myServiceSpecificSettings.json```
305+
295306
```json
296307
{
297308
"AuthMethod": "DeviceCode",
@@ -327,6 +338,7 @@ AuthorityHost are optional fields depending on which means of authentication is
327338
expected to be used.
328339

329340
### Default Azure ```myServiceSpecificSettings.json```
341+
330342
```json
331343
{
332344
"AuthMethod": "DefaultAzure",
@@ -441,4 +453,4 @@ credentials by passing a specific path e.g.:
441453
clientSecretCredentials = configureCredentials(fullfile(AzureCommonRoot, 'config', 'settings_ClientSecret.json'));
442454
```
443455

444-
[//]: # (Copyright 2020-2022 The MathWorks, Inc.)
456+
[//]: # (Copyright 2020-2023 The MathWorks, Inc.)

Documentation/Blob.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,7 @@ builder = azure.storage.blob.BlobServiceClientBuilder();
5959
6060
% configureCredentials is a convenience method that simplifies creating a credentials
6161
% argument for the client's builder. In this case a Connection String is used to
62-
% authenticate. Other authentication methods may required different build steps,
63-
% e.g. setting an endpoint
62+
% authenticate. Other authentication methods may required different build steps.
6463
credentials = configureCredentials(fullfile(AzureCommonRoot, 'config', 'settings_ConnectionString.json'));
6564
builder = builder.connectionString(credentials);
6665
@@ -251,6 +250,7 @@ results = containerClient.listBlobs;
251250
% Display the name of the 1st blob assuming the container is not empty
252251
results(1).getName()
253252
```
253+
254254
See also [Advanced listing support](#advanced-listing-support) below.
255255

256256
#### Create a BlobClient
@@ -459,7 +459,7 @@ blobClient.uploadFromFile('myfile.txt','overwrite',true,'leaseId',leaseId);
459459
blobClient.deleteBlob('leaseId',leaseId);
460460
```
461461

462-
### Advanced listing support
462+
## Advanced listing support
463463

464464
A basic listing of a container's contents can be done as follows:
465465

@@ -603,7 +603,12 @@ ans =
603603
{'barMetadataVal'}
604604
```
605605

606-
607606
For more information, see [https://azuresdkdocs.blob.core.windows.net/$web/java/azure-storage-blob/12.21.0/com/azure/storage/blob/BlobContainerClient.html#listBlobs()](https://azuresdkdocs.blob.core.windows.net/$web/java/azure-storage-blob/12.21.0/com/azure/storage/blob/BlobContainerClient.html#listBlobs())
608607

608+
## Custom EndPoints
609+
610+
Typically and by default Azure storage endpoints follow the pattern: `https://AccountName.Type.core.windows.net`, e.g. `https://mystorageaccount.blob.core.windows.net`. However, endpoints may vary e.g. if using Azure Government or private endpoints, which are respectively `https://AccountName.Type.core.usgovcloudapi.net` and `https://AccountName.privatelink.Type.core.windows.net`. If configuring a client builder then the `endpoint()` method can be used to set such an endpoint directly. By default if using the `createStorageClient()` function it will use the account name and storage type to create a default endpoint. This can be overridden by passing an `EndPoint` named value argument pair or by setting and "EndPoint" field in the JSON configuration file used to provide settings and credentials.
611+
612+
For details of private endpoint use see: [https://learn.microsoft.com/en-us/azure/storage/common/storage-private-endpoints](https://learn.microsoft.com/en-us/azure/storage/common/storage-private-endpoints)
613+
609614
[//]: # (Copyright 2020-2023 The MathWorks, Inc.)

Documentation/Configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ An example `mysettings.json` file could look something like the following:
2525
And then in MATLAB this could be used as:
2626

2727
```matlab
28-
settings = loadConfigurationSettings('settings.json');
28+
settings = loadConfigurationSettings('mysettings.json');
2929
homePage = webread(settings.myURL);
3030
```
3131

@@ -51,4 +51,4 @@ configuration file name if needed:
5151
* [Key Vault](KeyVault.md)
5252
* [Data Lake Storage Gen2](DataLakeStorageGen2.md)
5353

54-
[//]: # (Copyright 2022 The MathWorks, Inc.)
54+
[//]: # (Copyright 2022-2023 The MathWorks, Inc.)

RELEASENOTES.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,20 @@
22

33
## Release Notes
44

5+
## Release 0.3.0 March 27th 2023
6+
7+
* Added EndPoint setting support
8+
* Documentation updates
9+
* Added Managed Identity Resource ID support
10+
* Increase Azure SDK bom version to 1.2.11
11+
* Standardized ClientId settings field name
12+
* Standardized PemCertificate settings field name
13+
514
## Release 0.2.0 March 13th 2023
615

716
* Added additional blob listing support
817
* Increase Azure SDK bom version to 1.2.10
9-
* Documentation update
18+
* Documentation updates
1019

1120
## Release 0.1.1 September 7th 2022
1221

Software/Java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<dependency>
2323
<groupId>com.azure</groupId>
2424
<artifactId>azure-sdk-bom</artifactId>
25-
<version>1.2.10</version>
25+
<version>1.2.11</version>
2626
<type>pom</type>
2727
<scope>import</scope>
2828
</dependency>

Software/MATLAB/app/functions/AzureStorageExplorer.m

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ function AzureStorageExplorer(varargin)
44
% installation of the storage explorer in the configuration file.
55
%
66
% By default the MATLAB path will be searched for a configuration file called
7-
% settings.json, however an alternative filename can be provided as
7+
% storagesettings.json, however an alternative filename can be provided as
88
% an argument to this function.
99

10-
% Copyright 2020-2022 The MathWorks, Inc.
10+
% Copyright 2020-2023 The MathWorks, Inc.
1111

1212
% Create a logger object
1313
logObj = Logger.getLogger();
@@ -18,7 +18,7 @@ function AzureStorageExplorer(varargin)
1818
end
1919

2020
if isempty(varargin)
21-
configFile = which('settings.json');
21+
configFile = which('storagesettings.json');
2222
else
2323
configFile = varargin{1};
2424
end
@@ -39,8 +39,8 @@ function AzureStorageExplorer(varargin)
3939
write(logObj,'error',['Storage explorer not found at path: ', sePath]);
4040
end
4141
else
42-
write(logObj,'error','LocalPathToStorageExplorer not set in settings.json');
42+
write(logObj,'error','LocalPathToStorageExplorer not set in storagesettings.json');
4343
end
4444
else
45-
write(logObj,'error','settings.json with Storage Explorer path not found');
45+
write(logObj,'error','storagesettings.json with Storage Explorer path not found');
4646
end %function

0 commit comments

Comments
 (0)