Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 16 additions & 23 deletions cliv2/cmd/cliv2/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ import (
"github.com/snyk/cli-extension-iac-rules/iacrules"
"github.com/snyk/cli-extension-iac/pkg/iac"
"github.com/snyk/cli-extension-sbom/pkg/sbom"
"github.com/snyk/cli/cliv2/internal/cliv2"
"github.com/snyk/cli/cliv2/internal/constants"
"github.com/snyk/container-cli/pkg/container"
"github.com/snyk/go-application-framework/pkg/analytics"
"github.com/snyk/go-application-framework/pkg/app"
Expand All @@ -34,6 +32,12 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/pflag"

"github.com/snyk/error-catalog-golang-public/cli"
"github.com/snyk/go-application-framework/pkg/local_workflows/config_utils"

"github.com/snyk/cli/cliv2/internal/cliv2"
"github.com/snyk/cli/cliv2/internal/constants"

localworkflows "github.com/snyk/go-application-framework/pkg/local_workflows"

"github.com/snyk/go-application-framework/pkg/local_workflows/content_type"
Expand All @@ -51,9 +55,10 @@ import (

snykmcp "github.com/snyk/snyk-ls/mcp_extension"

workflows "github.com/snyk/go-application-framework/pkg/local_workflows/connectivity_check_extension"

cli_errors "github.com/snyk/cli/cliv2/internal/errors"
"github.com/snyk/cli/cliv2/pkg/basic_workflows"
workflows "github.com/snyk/go-application-framework/pkg/local_workflows/connectivity_check_extension"
)

var internalOS string
Expand Down Expand Up @@ -153,6 +158,13 @@ func runMainWorkflow(config configuration.Configuration, cmd *cobra.Command, arg
return err
}

// global handling of experimental commands
if config_utils.IsExperimental(cmd.Flags()) {
if !globalConfiguration.GetBool(configuration.FLAG_EXPERIMENTAL) {
return cli.NewCommandIsExperimentalError(getFullCommandString(cmd))
}
}

updateConfigFromParameter(config, args, rawArgs)

name := getFullCommandString(cmd)
Expand Down Expand Up @@ -548,7 +560,7 @@ func MainWithErrorCode() (int, []error) {
globalEngine.AddExtensionInitializer(snykls.Init)
globalEngine.AddExtensionInitializer(snykmcp.Init)
globalEngine.AddExtensionInitializer(container.Init)
globalEngine.AddExtensionInitializer(initConnectivityCheck)
globalEngine.AddExtensionInitializer(workflows.InitConnectivityCheckWorkflow)
globalEngine.AddExtensionInitializer(localworkflows.InitCodeWorkflow)
globalEngine.AddExtensionInitializer(ignoreworkflow.InitIgnoreWorkflows)

Expand Down Expand Up @@ -695,22 +707,3 @@ func setTimeout(config configuration.Configuration, onTimeout func()) {
onTimeout()
}()
}

// initConnectivityCheck wraps the connectivity-check extension initialization
// to ensure the workflow is visible
func initConnectivityCheck(engine workflow.Engine) error {
// Call the original init function
err := workflows.InitConnectivityCheckWorkflow(engine)
if err != nil {
return err
}

// Get the workflow entry and make it visible
workflowID := workflow.NewWorkflowIdentifier("tools.connectivity-check")
entry, exists := engine.GetWorkflow(workflowID)
if exists && entry != nil {
entry.SetVisibility(true)
}

return nil
}
2 changes: 1 addition & 1 deletion cliv2/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ require (
github.com/snyk/cli-extension-sbom v0.0.0-20250422133603-a5ae6fdf0934
github.com/snyk/container-cli v0.0.0-20250321132345-1e2e01681dd7
github.com/snyk/error-catalog-golang-public v0.0.0-20250625135845-2d6f9a31f318
github.com/snyk/go-application-framework v0.0.0-20250718142739-7b13eea2dabe
github.com/snyk/go-application-framework v0.0.0-20250721152513-f5f856730f1a
github.com/snyk/go-httpauth v0.0.0-20240307114523-1f5ea3f55c65
github.com/snyk/snyk-iac-capture v0.6.5
github.com/snyk/snyk-ls v0.0.0-20250721151312-af6f306b820e
Expand Down
4 changes: 2 additions & 2 deletions cliv2/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -804,8 +804,8 @@ github.com/snyk/container-cli v0.0.0-20250321132345-1e2e01681dd7 h1:/2+2piwQtB9f
github.com/snyk/container-cli v0.0.0-20250321132345-1e2e01681dd7/go.mod h1:38w+dcAQp9eG3P5t2eNS9eG0reut10AeJjLv5lJ5lpM=
github.com/snyk/error-catalog-golang-public v0.0.0-20250625135845-2d6f9a31f318 h1:2bNOlUstBBWHa3doBvdOBlMSu8AC01IHyNexT9MoKiM=
github.com/snyk/error-catalog-golang-public v0.0.0-20250625135845-2d6f9a31f318/go.mod h1:Ytttq7Pw4vOCu9NtRQaOeDU2dhBYUyNBe6kX4+nIIQ4=
github.com/snyk/go-application-framework v0.0.0-20250718142739-7b13eea2dabe h1:tONNShHQHSdIAm/wDNOUyLGOj+eQSvbGDNzTJ2WshxY=
github.com/snyk/go-application-framework v0.0.0-20250718142739-7b13eea2dabe/go.mod h1:ePzg+iOUmh9C7KNDGwDbz4Yt9q2FVXNIu2YoyR0X5J4=
github.com/snyk/go-application-framework v0.0.0-20250721152513-f5f856730f1a h1:EVChqpbOgpWL+STGDbYD0ZSyzgtGMvpCaWCC+dz6myQ=
github.com/snyk/go-application-framework v0.0.0-20250721152513-f5f856730f1a/go.mod h1:ePzg+iOUmh9C7KNDGwDbz4Yt9q2FVXNIu2YoyR0X5J4=
github.com/snyk/go-httpauth v0.0.0-20240307114523-1f5ea3f55c65 h1:CEQuYv0Go6MEyRCD3YjLYM2u3Oxkx8GpCpFBd4rUTUk=
github.com/snyk/go-httpauth v0.0.0-20240307114523-1f5ea3f55c65/go.mod h1:88KbbvGYlmLgee4OcQ19yr0bNpXpOr2kciOthaSzCAg=
github.com/snyk/policy-engine v0.33.2 h1:ZxD6/RQ4vqUAXa64V72SsGjZ8vmnBgZNGYQxMIqctYo=
Expand Down
11 changes: 6 additions & 5 deletions test/jest/acceptance/snyk-sbom-monitor/all-projects.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { fakeServer } from '../../../acceptance/fake-server';
import { getServerPort } from '../../util/getServerPort';
import { getFixturePath } from '../../util/getFixturePath';
import * as path from 'path';
import { EXIT_CODES } from '../../../../src/cli/exit-codes';

jest.setTimeout(1000 * 60);

Expand Down Expand Up @@ -86,14 +87,14 @@ describe('snyk sbom monitor (mocked server only)', () => {
'npm-sbom-cdx15.json',
);

const { stdout, stderr } = await runSnykCLI(
const { stdout, stderr, code } = await runSnykCLI(
`sbom monitor --org aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee --file ${fileToTest}`,
{ env },
);

expect(stdout).toMatch(
'Flag `--experimental` is required to execute this command.',
);
expect(code).toBe(EXIT_CODES.ERROR);

expect(stdout).toContain('--experimental');

expect(stderr).toEqual('');
});
Expand Down Expand Up @@ -124,7 +125,7 @@ describe('snyk sbom monitor (mocked server only)', () => {
{ env },
);

expect(code).toEqual(2);
expect(code).toEqual(EXIT_CODES.ERROR);

expect(stderr).toEqual('');
expect(stdout).toContain(
Expand Down
9 changes: 5 additions & 4 deletions test/jest/acceptance/snyk-sbom-test/all-projects.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { fakeServer } from '../../../acceptance/fake-server';
import { getServerPort } from '../../util/getServerPort';
import { getFixturePath } from '../../util/getFixturePath';
import * as path from 'path';
import { EXIT_CODES } from '../../../../src/cli/exit-codes';

jest.setTimeout(1000 * 60);

Expand Down Expand Up @@ -112,14 +113,14 @@ describe('snyk sbom test (mocked server only)', () => {
'npm-sbom-cdx15.json',
);

const { stdout, stderr } = await runSnykCLI(
const { stdout, stderr, code } = await runSnykCLI(
`sbom test --org aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee --file ${fileToTest}`,
{ env },
);

expect(stdout).toMatch(
'Flag `--experimental` is required to execute this command.',
);
expect(code).toBe(EXIT_CODES.ERROR);

expect(stdout).toMatch('--experimental');

expect(stderr).toEqual('');
});
Expand Down