Skip to content

Commit

Permalink
Allow to create integration policy with no agent policies
Browse files Browse the repository at this point in the history
  • Loading branch information
jen-huang committed Nov 20, 2024
1 parent c9e7820 commit ce24b0c
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ export function useOnSubmit({

useEffect(() => {
if (
agentPolicies.length > 0 &&
(canUseMultipleAgentPolicies || agentPolicies.length > 0) &&
!isEqual(
agentPolicies.map((policy) => policy.id),
packagePolicy.policy_ids
Expand All @@ -290,7 +290,7 @@ export function useOnSubmit({
policy_ids: agentPolicies.map((policy) => policy.id),
});
}
}, [packagePolicy, agentPolicies, updatePackagePolicy]);
}, [packagePolicy, agentPolicies, updatePackagePolicy, canUseMultipleAgentPolicies]);

const onSaveNavigate = useOnSaveNavigate({
packagePolicy,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import type {
UpdatePackagePolicy,
UpdateAgentPolicyRequest,
} from '../../../types';
import { canUseMultipleAgentPolicies } from '../../../hooks';

function generateKibanaDevToolsRequest(method: string, path: string, body: any) {
return `${method} kbn:${path}\n${JSON.stringify(body, null, 2)}\n`;
Expand Down Expand Up @@ -49,9 +50,13 @@ export function generateCreateAgentPolicyDevToolsRequest(
export function generateCreatePackagePolicyDevToolsRequest(
packagePolicy: NewPackagePolicy & { force?: boolean }
) {
const canHaveNoAgentPolicies = canUseMultipleAgentPolicies();

return generateKibanaDevToolsRequest('POST', packagePolicyRouteService.getCreatePath(), {
policy_ids:
packagePolicy.policy_ids.length > 0 ? packagePolicy.policy_ids : ['<agent_policy_id>'],
packagePolicy.policy_ids.length > 0 || canHaveNoAgentPolicies
? packagePolicy.policy_ids
: ['<agent_policy_id>'],
package: formatPackage(packagePolicy.package),
...omit(packagePolicy, 'policy_ids', 'package', 'enabled'),
inputs: formatInputs(packagePolicy.inputs),
Expand Down
11 changes: 6 additions & 5 deletions x-pack/plugins/fleet/public/hooks/use_multiple_agent_policies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@
import { LICENCE_FOR_MULTIPLE_AGENT_POLICIES } from '../../common/constants';
import { ExperimentalFeaturesService } from '../services';

import { useLicense } from './use_license';
import { licenseService } from './use_license';

export function useMultipleAgentPolicies() {
const licenseService = useLicense();
return { canUseMultipleAgentPolicies: canUseMultipleAgentPolicies() };
}

export function canUseMultipleAgentPolicies() {
const { enableReusableIntegrationPolicies } = ExperimentalFeaturesService.get();

const hasEnterpriseLicence = licenseService.hasAtLeast(LICENCE_FOR_MULTIPLE_AGENT_POLICIES);

const canUseMultipleAgentPolicies = enableReusableIntegrationPolicies && hasEnterpriseLicence;

return { canUseMultipleAgentPolicies };
return Boolean(enableReusableIntegrationPolicies && hasEnterpriseLicence);
}

0 comments on commit ce24b0c

Please sign in to comment.