mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-18 21:21:06 +02:00
* Ui/transform enable (#9647) * Show Transform on engines list if enterprise * Add box-radio component * Add is-disabled styling for box-radio and fix tooltip styling when position: above * Add KMIP and Transform to possible features on has feature helper * Sidebranch: Transform Secret Engine Initial setup (#9625) * WIP // list transforms, console.logs and all * setup LIST transformations ajax request and draft out options-for-backend options * change from plural to singluar and add transform to secret-edit * create two transform edit components * modify transform model with new attrs * add adapterFor to connect transform adapter to transform-edit-form component * setup Allowed roles searchSelect component to search over new transform/role adapter and model. * clean up for PR * clean up linting errors * restructure adapter call, now it works. * remove console * setup template model for SearchSelect component * add props to form field and search select for styling Co-authored-by: Chelsea Shaw <chelshaw.dev@gmail.com> * Ui/transform language fixes (#9666) * Update casing and wording on Transform list route. Use generic list item for transformations * Add back js file for transformation-edit * Set up transform for tabs * Ui/create edit transformation fixes (#9668) * add conditional for masking vs tweak source based on type, and update text for create transformation * change order * fix error with stringArray * setup the edit/delete transformation view * clean up toolbar links * setup serializer to change response of mask character from keycode to character * change styling of label and sub-text size, confirmed with design * temp fix on templates vs template * add clickable list item * add space between template list * setup styling and structure for the rest of the show transformation. TODO: turn into components. * create transform-show-transformation component * add attachCapabilities to transform model and update transform-transformation-itme list accordingly * clean up liniting errors * address pr comments * remove leftover * clean up * Sidebranch: UI transform create and edit clean up (#9778) * clean up some of the TODOs * setup edit view with read only attributes for name and template * setup initial selected for search select component * fixes * hide templates form field for now * set selectLimit for search select component * hide power select if the select limit is greater than or equal to the selectedOptions length * clean up failing linting * address pr comments * Ui/fix list roles transformation (#9788) * Update search-select to pass backend to query if exists * Update role and template adapters * cleanup * Fix replace with static string * Ui/transform cleanup 2 (#9789) * amend encode/decode commands for now until design gets back with more details * restrict character count on masking input field * clean up selectLimit * show backend instead of transform in cli copy command * Show KMIP un-selectable if enterprise but no ADP module (#9780) * New component transform-edit-base * Duplicate RoleEdit as TransformEditBase and swap in all transform components * Roll back role-edit changes * Update to transform edit base * Remove extraeneous set backend type on transform components * formatting * Revert search-select changes * Update template/templates data on transformation (#9838) Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com>
136 lines
3.8 KiB
JavaScript
136 lines
3.8 KiB
JavaScript
import { helper as buildHelper } from '@ember/component/helper';
|
|
import { capitalize } from '@ember/string';
|
|
import { assign } from '@ember/polyfills';
|
|
|
|
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',
|
|
},
|
|
transform: {
|
|
displayName: 'Transformation',
|
|
navigateTree: false,
|
|
listItemPartial: 'partials/secret-list/transform-transformation-item',
|
|
tabs: [
|
|
{
|
|
name: 'transformations',
|
|
label: 'Transformations',
|
|
searchPlaceholder: 'Filter transformations',
|
|
item: 'transformation',
|
|
create: 'Create transformation',
|
|
editComponent: 'transformation-edit',
|
|
},
|
|
// TODO: Add tabs as needed
|
|
// {
|
|
// name: 'roles',
|
|
// modelPrefix: 'role/',
|
|
// label: 'Roles',
|
|
// searchPlaceholder: 'Filter roles',
|
|
// item: 'roles',
|
|
// create: 'Create role',
|
|
// tab: 'role',
|
|
// listItemPartial: 'partials/secret-list/item',
|
|
// editComponent: 'transform-role-edit',
|
|
// },
|
|
// {
|
|
// name: 'templates',
|
|
// modelPrefix: 'template/',
|
|
// label: 'Templates',
|
|
// searchPlaceholder: 'Filter templates',
|
|
// item: 'templates',
|
|
// create: 'Create template',
|
|
// tab: 'template',
|
|
// listItemPartial: 'partials/secret-list/item',
|
|
// editComponent: 'transform-template-edit',
|
|
// },
|
|
// {
|
|
// name: 'alphabets',
|
|
// modelPrefix: 'alphabet/',
|
|
// label: 'Alphabets',
|
|
// searchPlaceholder: 'Filter alphabets',
|
|
// item: 'alphabets',
|
|
// create: 'Create alphabet',
|
|
// tab: 'alphabet',
|
|
// listItemPartial: 'partials/secret-list/item',
|
|
// editComponent: 'alphabet-edit',
|
|
// },
|
|
],
|
|
},
|
|
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 = assign({}, selected, tabData);
|
|
} else if (selected) {
|
|
backendOptions = selected;
|
|
} else {
|
|
backendOptions = assign({}, DEFAULT_DISPLAY, {
|
|
displayName: backend === 'kv' ? 'KV' : capitalize(backend),
|
|
});
|
|
}
|
|
return backendOptions;
|
|
}
|
|
|
|
export default buildHelper(optionsForBackend);
|