9f99ac44f4
The default TTL was being offered as 30 minutes, and when unchanged, the UI wouldn't send the TTL back to the backend, causing it to use the default of 60m. Fix the TTL to default back to 1 hour.
53 lines
1.8 KiB
JavaScript
53 lines
1.8 KiB
JavaScript
import DS from 'ember-data';
|
|
import Ember from 'ember';
|
|
import { expandAttributeMeta } from 'vault/utils/field-to-attrs';
|
|
const { attr } = DS;
|
|
const { computed } = Ember;
|
|
const CREATE_FIELDS = ['ttl', 'roleArn'];
|
|
|
|
const DISPLAY_FIELDS = ['accessKey', 'secretKey', 'securityToken', 'leaseId', 'renewable', 'leaseDuration'];
|
|
export default DS.Model.extend({
|
|
helpText:
|
|
'For Vault roles that have a credential type of iam_user, these attributes are optional and you may simply submit the form.',
|
|
role: attr('object', {
|
|
readOnly: true,
|
|
}),
|
|
|
|
roleArn: attr('string', {
|
|
label: 'Role ARN',
|
|
helpText:
|
|
'The ARN of the role to assume if credential_type on the Vault role is assumed_role. Optional if the role has a single role ARN; required otherwise.',
|
|
}),
|
|
ttl: attr({
|
|
editType: 'ttl',
|
|
defaultValue: '3600s',
|
|
label: 'TTL',
|
|
helpText:
|
|
'Specifies the TTL for the use of the STS token. Valid only when credential_type is assumed_role or federation_token.',
|
|
}),
|
|
leaseId: attr('string'),
|
|
renewable: attr('boolean'),
|
|
leaseDuration: attr('number'),
|
|
accessKey: attr('string'),
|
|
secretKey: attr('string'),
|
|
securityToken: attr('string'),
|
|
|
|
attrs: computed('accessKey', 'securityToken', function() {
|
|
let keys =
|
|
this.get('accessKey') || this.get('securityToken') ? DISPLAY_FIELDS.slice(0) : CREATE_FIELDS.slice(0);
|
|
return expandAttributeMeta(this, keys);
|
|
}),
|
|
|
|
toCreds: computed('accessKey', 'secretKey', 'securityToken', 'leaseId', function() {
|
|
const props = this.getProperties('accessKey', 'secretKey', 'securityToken', 'leaseId');
|
|
const propsWithVals = Object.keys(props).reduce((ret, prop) => {
|
|
if (props[prop]) {
|
|
ret[prop] = props[prop];
|
|
return ret;
|
|
}
|
|
return ret;
|
|
}, {});
|
|
return JSON.stringify(propsWithVals, null, 2);
|
|
}),
|
|
});
|