apidump

package
v0.17.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2021 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Cmd = &cobra.Command{
	Use:          "apidump",
	Short:        "Capture requests/responses from network traffic.",
	Long:         "Capture and store a sequence of requests/responses to a service by observing network traffic.",
	SilenceUsage: true,
	Args:         cobra.ExactArgs(0),
	RunE: func(cmd *cobra.Command, _ []string) error {
		traceTags, err := util.ParseTagsAndWarn(tagsFlag)
		if err != nil {
			return err
		}

		plugins, err := pluginloader.Load(pluginsFlag)
		if err != nil {
			return errors.Wrap(err, "failed to load plugins")
		}

		if outFlag.IsSet() == (serviceFlag != "") {
			return errors.New("exactly one of --out or --service must be specified")
		}

		if serviceFlag != "" {
			uri, err := akiuri.Parse(akiuri.Scheme + serviceFlag)
			if err != nil {
				return errors.Wrap(err, "bad service name")
			}
			outFlag.AkitaURI = &uri
		}

		if appendByTagFlag {
			if outFlag.AkitaURI == nil {
				return errors.New("\"append-by-tag\" can only be used with a cloud-based trace")
			}

			if outFlag.AkitaURI.ObjectName != "" {
				return errors.New("Cannot specify a trace name together with \"append-by-tag\"")
			}

			destURI, err := util.GetTraceURIByTags(akiflag.Domain,
				akiflag.GetClientID(),
				outFlag.AkitaURI.ServiceName,
				traceTags,
				"append-by-tag",
			)
			if err != nil {
				return err
			}
			if destURI.ObjectName != "" {
				outFlag.AkitaURI = &destURI
			}
		}

		args := apidump.Args{
			ClientID:           akiflag.GetClientID(),
			Domain:             akiflag.Domain,
			Out:                outFlag,
			Tags:               traceTags,
			SampleRate:         sampleRateFlag,
			WitnessesPerMinute: rateLimitFlag,
			Interfaces:         interfacesFlag,
			Filter:             filterFlag,
			PathExclusions:     pathExclusionsFlag,
			HostExclusions:     hostExclusionsFlag,
			PathAllowlist:      pathAllowlistFlag,
			HostAllowlist:      hostAllowlistFlag,
			ExecCommand:        execCommandFlag,
			ExecCommandUser:    execCommandUserFlag,
			Plugins:            plugins,
		}
		if err := apidump.Run(args); err != nil {
			return cmderr.AkitaErr{Err: err}
		}
		return nil
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL