* feat: 🎸 load edition from controller-metadata.json * refactor: 💡 rename edition and add licensed features support * chore: 🤖 support dev toggling of licensed features * chore: 🤖 rename ent edition * Update ui/admin/app/services/feature-edition.js * Update ui/admin/app/instance-initializers/feature-edition.js Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com> * chore: 🤖 cleanup * chore: 🤖 feature edition disabled in tests / fix test cases * test: 💍 remove feature disable calls in tests * test: 💍 fix broken tests * fix: 🐛 fix config bug * fix: 🐛 fix broken test due to feature flags --------- Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
const EDITION = process.env.EDITION || 'oss'; // Default edition is OSS
|
|
|
|
const defaultEdition = EDITION;
|
|
|
|
const devFeatures = {
|
|
'dev-edition-toggle': false,
|
|
};
|
|
const licensedFeatures = {
|
|
'multi-hop-sessions': false,
|
|
'ssh-target': false,
|
|
};
|
|
// Base edition declares available features, disabled by default.
|
|
const baseEdition = {
|
|
...devFeatures,
|
|
...licensedFeatures,
|
|
byow: false,
|
|
'byow-pki-hcp-cluster-id': false,
|
|
'json-credentials': false,
|
|
'static-credentials': false,
|
|
'target-worker-filters-v2': false,
|
|
'target-worker-filters-v2-ingress': false,
|
|
'target-worker-filters-v2-hcp': false,
|
|
'target-network-address': false,
|
|
'vault-worker-filter': false,
|
|
};
|
|
// Editions maps edition keys to their associated featuresets.
|
|
const featureEditions = {};
|
|
featureEditions.oss = {
|
|
...baseEdition,
|
|
byow: true,
|
|
'json-credentials': true,
|
|
'static-credentials': true,
|
|
'target-worker-filters-v2': true,
|
|
'target-network-address': true,
|
|
};
|
|
featureEditions.enterprise = {
|
|
...featureEditions.oss,
|
|
'target-worker-filters-v2-ingress': true,
|
|
'vault-worker-filter': true,
|
|
};
|
|
featureEditions.hcp = {
|
|
...featureEditions.enterprise,
|
|
'byow-pki-hcp-cluster-id': true,
|
|
'target-worker-filters-v2-hcp': true,
|
|
};
|
|
|
|
module.exports = {
|
|
featureEditions,
|
|
defaultEdition,
|
|
licensedFeatures,
|
|
};
|