mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 02:28:09 +00:00 
			
		
		
		
	 c722bc0e39
			
		
	
	c722bc0e39
	
	
	
		
			
			* remove expanding behavior from engines list and add a configuration route * use page header component, secret tab component for the template on the secret engine configuration route * move abstraction to secret-list-header and remove secret-tabs * add attrs to secret engine model and adjust mount controller code to support that * fix top level nav so that we can use the back button properly * fix tests
		
			
				
	
	
		
			100 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import Ember from 'ember';
 | |
| import DS from 'ember-data';
 | |
| import { queryRecord } from 'ember-computed-query';
 | |
| import { fragment } from 'ember-data-model-fragments/attributes';
 | |
| 
 | |
| import { expandAttributeMeta } from 'vault/utils/field-to-attrs';
 | |
| 
 | |
| const { attr } = DS;
 | |
| const { computed } = Ember;
 | |
| 
 | |
| //identity will be managed separately and the inclusion
 | |
| //of the system backend is an implementation detail
 | |
| const LIST_EXCLUDED_BACKENDS = ['system', 'identity'];
 | |
| 
 | |
| export default DS.Model.extend({
 | |
|   path: attr('string'),
 | |
|   accessor: attr('string'),
 | |
|   name: attr('string'),
 | |
|   type: attr('string'),
 | |
|   description: attr('string'),
 | |
|   config: fragment('mount-config', { defaultValue: {} }),
 | |
|   options: fragment('mount-options', { defaultValue: {} }),
 | |
|   local: attr('boolean'),
 | |
|   sealWrap: attr('boolean'),
 | |
| 
 | |
|   formFields: [
 | |
|     'type',
 | |
|     'path',
 | |
|     'description',
 | |
|     'accessor',
 | |
|     'local',
 | |
|     'sealWrap',
 | |
|     'config.{defaultLeaseTtl,maxLeaseTtl}',
 | |
|     'options.{version}',
 | |
|   ],
 | |
| 
 | |
|   attrs: computed('formFields', function() {
 | |
|     return expandAttributeMeta(this, this.get('formFields'));
 | |
|   }),
 | |
| 
 | |
|   shouldIncludeInList: computed('type', function() {
 | |
|     return !LIST_EXCLUDED_BACKENDS.includes(this.get('type'));
 | |
|   }),
 | |
| 
 | |
|   localDisplay: Ember.computed('local', function() {
 | |
|     return this.get('local') ? 'local' : 'replicated';
 | |
|   }),
 | |
| 
 | |
|   // ssh specific ones
 | |
|   privateKey: attr('string'),
 | |
|   publicKey: attr('string'),
 | |
|   generateSigningKey: attr('boolean', {
 | |
|     defaultValue: true,
 | |
|   }),
 | |
| 
 | |
|   saveCA(options) {
 | |
|     if (this.get('type') !== 'ssh') {
 | |
|       return;
 | |
|     }
 | |
|     if (options.isDelete) {
 | |
|       this.setProperties({
 | |
|         privateKey: null,
 | |
|         publicKey: null,
 | |
|         generateSigningKey: false,
 | |
|       });
 | |
|     }
 | |
|     return this.save({
 | |
|       adapterOptions: {
 | |
|         options: options,
 | |
|         apiPath: 'config/ca',
 | |
|         attrsToSend: ['privateKey', 'publicKey', 'generateSigningKey'],
 | |
|       },
 | |
|     });
 | |
|   },
 | |
| 
 | |
|   saveZeroAddressConfig() {
 | |
|     return this.save({
 | |
|       adapterOptions: {
 | |
|         adapterMethod: 'saveZeroAddressConfig',
 | |
|       },
 | |
|     });
 | |
|   },
 | |
| 
 | |
|   zeroAddressPath: queryRecord(
 | |
|     'capabilities',
 | |
|     context => {
 | |
|       const { id } = context.getProperties('backend', 'id');
 | |
|       return {
 | |
|         id: `${id}/config/zeroaddress`,
 | |
|       };
 | |
|     },
 | |
|     'id'
 | |
|   ),
 | |
|   canEditZeroAddress: computed.alias('zeroAddressPath.canUpdate'),
 | |
| 
 | |
|   // aws backend attrs
 | |
|   lease: attr('string'),
 | |
|   leaseMax: attr('string'),
 | |
| });
 |