85 lines
2.2 KiB
JavaScript
85 lines
2.2 KiB
JavaScript
|
import Ember from 'ember';
|
||
|
|
||
|
const DEFAULT_DISPLAY = {
|
||
|
searchPlaceholder: 'Filter secrets',
|
||
|
item: 'secret',
|
||
|
create: 'Create secret',
|
||
|
navigateTree: true,
|
||
|
editComponent: 'secret-edit',
|
||
|
listItemPartial: 'partials/secret-list/item',
|
||
|
};
|
||
|
const SECRET_BACKENDS = {
|
||
|
aws: {
|
||
|
displayName: 'AWS',
|
||
|
searchPlaceholder: 'Filter roles',
|
||
|
item: 'role',
|
||
|
create: 'Create role',
|
||
|
navigateTree: false,
|
||
|
editComponent: 'role-aws-edit',
|
||
|
listItemPartial: 'partials/secret-list/aws-role-item',
|
||
|
},
|
||
|
pki: {
|
||
|
displayName: 'PKI',
|
||
|
navigateTree: false,
|
||
|
listItemPartial: 'partials/secret-list/pki-role-item',
|
||
|
tabs: [
|
||
|
{
|
||
|
name: 'roles',
|
||
|
label: 'Roles',
|
||
|
searchPlaceholder: 'Filter roles',
|
||
|
item: 'role',
|
||
|
create: 'Create role',
|
||
|
editComponent: 'role-pki-edit',
|
||
|
},
|
||
|
{
|
||
|
name: 'certs',
|
||
|
modelPrefix: 'cert/',
|
||
|
label: 'Certificates',
|
||
|
searchPlaceholder: 'Filter certificates',
|
||
|
item: 'certificates',
|
||
|
create: 'Create role',
|
||
|
tab: 'certs',
|
||
|
listItemPartial: 'partials/secret-list/pki-cert-item',
|
||
|
editComponent: 'pki-cert-show',
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
ssh: {
|
||
|
displayName: 'SSH',
|
||
|
searchPlaceholder: 'Filter roles',
|
||
|
item: 'role',
|
||
|
create: 'Create role',
|
||
|
navigateTree: false,
|
||
|
editComponent: 'role-ssh-edit',
|
||
|
listItemPartial: 'partials/secret-list/ssh-role-item',
|
||
|
},
|
||
|
transit: {
|
||
|
searchPlaceholder: 'Filter keys',
|
||
|
item: 'key',
|
||
|
create: 'Create encryption key',
|
||
|
navigateTree: false,
|
||
|
editComponent: 'transit-edit',
|
||
|
listItemPartial: 'partials/secret-list/item',
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export function optionsForBackend([backend, tab]) {
|
||
|
const selected = SECRET_BACKENDS[backend];
|
||
|
let backendOptions;
|
||
|
|
||
|
if (selected && selected.tabs) {
|
||
|
let tabData =
|
||
|
selected.tabs.findBy('name', tab) || selected.tabs.findBy('modelPrefix', tab) || selected.tabs[0];
|
||
|
backendOptions = Ember.assign({}, selected, tabData);
|
||
|
} else if (selected) {
|
||
|
backendOptions = selected;
|
||
|
} else {
|
||
|
backendOptions = Ember.assign({}, DEFAULT_DISPLAY, {
|
||
|
displayName: backend === 'kv' ? 'KV' : Ember.String.capitalize(backend),
|
||
|
});
|
||
|
}
|
||
|
return backendOptions;
|
||
|
}
|
||
|
|
||
|
export default Ember.Helper.helper(optionsForBackend);
|