Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.

Commit 2241623

Browse files
authored
Adding arm token to config file and reading from it if present (#1168)
1 parent 8f22a9d commit 2241623

File tree

5 files changed

+34
-7
lines changed

5 files changed

+34
-7
lines changed

packages/config/src/commands/config/set/luis.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default class ConfigSetLuis extends Command {
1818
appId: flags.string({description: 'LUIS application Id'}),
1919
authoringKey: flags.string({description: 'LUIS cognitive services authoring key (aka Ocp-Apim-Subscription-Key).'}),
2020
subscriptionKey: flags.string({description: 'LUIS cognitive services subscription key (aka Ocp-Apim-Subscription-Key)'}),
21+
armToken: flags.string({description: 'User`s ARM token used to validate azure accounts information)'}),
2122
versionId: flags.string({description: 'LUIS version Id'}),
2223
endpoint: flags.string({description: 'LUIS application endpoint hostname, ex: <region>.api.cognitive.microsoft.com'}),
2324
}

packages/config/test/commands/config/set/luis.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,15 @@ describe('config:set:luis', () => {
3636
expect(config.luis__appId).to.contain('9999')
3737
expect(ctx.stdout).to.contain('appId set to 9999')
3838
})
39+
40+
test
41+
.stdout()
42+
.stderr()
43+
.command(['config:set:luis', '--armToken', '9999'])
44+
.it('displays an message indication arm token saved successfully', async ctx => {
45+
let config = await fs.readJSON(getConfigFile())
46+
expect(config.luis__armToken).to.contain('9999')
47+
expect(ctx.stdout).to.contain('armToken set to 9999')
48+
})
3949

4050
})

packages/luis/src/commands/luis/application/assignazureaccount.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ export default class LuisApplicationAssignazureaccount extends Command {
1414

1515
static flags: flags.Input<any> = {
1616
help: flags.help({char: 'h'}),
17-
appId: flags.string({description: '(required) LUIS application Id (defaults to config:LUIS:appId)'}),
17+
appId: flags.string({description: '(required) LUIS application Id (defaults to config:set:luis --appId {APPLICATION_ID})'}),
1818
endpoint: flags.string({description: 'LUIS endpoint hostname'}),
19-
subscriptionKey: flags.string({description: '(required) LUIS cognitive services subscription key (default: config:LUIS:subscriptionKey)'}),
19+
subscriptionKey: flags.string({description: '(required) LUIS cognitive services subscription key (default: config:set:luis --subscriptionKey {SUBSCRIPTION_KEY})'}),
2020
azureSubscriptionId: flags.string({description: 'Azure Subscription Id', required: true}),
2121
resourceGroup: flags.string({description: 'Resource Group', required: true}),
2222
accountName: flags.string({description: 'Account name', required: true}),
23-
armToken: flags.string({description: 'The bearer authorization header to use; containing the user`s ARM token used to validate azure accounts information', required: true}),
23+
armToken: flags.string({description: '(required) User`s ARM token used to validate azure accounts information (default: config:set:luis --armToken {ARM_TOKEN})'}),
2424
json: flags.boolean({description: 'Display output as JSON'})
2525
}
2626

@@ -33,15 +33,16 @@ export default class LuisApplicationAssignazureaccount extends Command {
3333
appId,
3434
endpoint,
3535
subscriptionKey,
36+
armToken
3637
} = await utils.processInputs(flags, flagLabels, configDir)
3738

38-
const requiredProps = {appId, endpoint, subscriptionKey}
39+
const requiredProps = {appId, endpoint, subscriptionKey, armToken}
3940
utils.validateRequiredProps(requiredProps)
4041

4142
try {
4243
const messageData = await Application.assignAzureAccount(
4344
{appId, endpoint, subscriptionKey},
44-
flags.armToken,
45+
armToken,
4546
flags.azureSubscriptionId,
4647
flags.resourceGroup,
4748
flags.accountName
@@ -55,7 +56,7 @@ export default class LuisApplicationAssignazureaccount extends Command {
5556
this.log(output)
5657

5758
} catch (err) {
58-
throw new CLIError(`Failed to assign accout: ${err}`)
59+
throw new CLIError(`Failed to assign account: ${err}`)
5960
}
6061
}
6162
}

packages/luis/src/utils/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,14 @@ const isDirectory = (path: string): boolean => {
5656
}
5757

5858
const filterByAllowedConfigValues = (configObj: any, prefix: string) => {
59-
const allowedConfigValues = [`${prefix}appId`, `${prefix}endpoint`, `${prefix}region`, `${prefix}subscriptionKey`, `${prefix}versionId`, `${prefix}authoringKey`]
59+
const allowedConfigValues = [
60+
`${prefix}appId`,
61+
`${prefix}endpoint`,
62+
`${prefix}region`,
63+
`${prefix}subscriptionKey`,
64+
`${prefix}versionId`,
65+
`${prefix}authoringKey`,
66+
`${prefix}armToken`]
6067
const filtered = Object.keys(configObj)
6168
.filter(key => allowedConfigValues.includes(key))
6269
.reduce((filteredConfigObj: any, key) => {

packages/luis/test/commands/luis/application/assignazureaccount.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ describe('luis:application:assignazureaccount', () => {
1313
sinon.restore();
1414
});
1515

16+
test
17+
.stderr()
18+
.command(['luis:application:assignazureaccount', '--endpoint', 'https://westus.api.cognitive.microsoft.com', '--subscriptionKey', uuidv1(), '--azureSubscriptionId', uuidv1(), '--resourceGroup', 'adfhrkg', '--accountName', 'sfgsgdszg', '--appId', uuidv1()])
19+
.exit(1)
20+
.it('Errors if arm token not passed', ctx => {
21+
expect(ctx.stderr).to.contain(`Required input property 'armToken' missing. Please pass it in as a flag or set it in the config file.`)
22+
})
23+
1624
test
1725
.nock('https://westus.api.cognitive.microsoft.com', api => api
1826
.post(uri => uri.includes('apps'))

0 commit comments

Comments
 (0)