Inedo SDK
  • 30 Aug 2023
  • 2 Minutes to read
  • Dark
  • PDF

Inedo SDK

  • Dark
  • PDF

Article Summary

A lot of Inedo's product functionality is delivered through extensions, a type of pluggable component library that provides both core capabilities as well as integrations with third-party tools.

👩‍💻 Creating Your Own Extension

Using the Inedo SDK, you can add similar integrations, functionality, and capabilities to the product by creating your own extension.

Some of the components can be used different products, which means you can write a component once and introduce the same functionality across all of our products.

Common Components (ProGet + BuildMaster + Otter)

User DirectoryResponsible for authenticating users and groups. The default implementation uses users and groups stored in the product's database.
Variable FunctionUsed in OtterScript and WebHooks to provide or manipulate values.

Execution Engine Components (BuildMaster + Otter)

ConfigurationA representation of a specific type of server configuration (such as the settings for an IIS Application Pool, or a directory on disk) that is used to store information collected from a server (Otter only) or as a template for desired configuration.
OperationA discrete task that is executed by the OtterScript runtime.
Raft RepositoryA self-contained abstract file system that is used as a backing store for plans, assets, and other files.
Secure CredentialA secret with secure fields that is stored in an encrypted manner.
Secure ResourceA connection to a tool or service that may use a Secure Credential.
Variable TypeAllows for definition of an input variable used in Pipelines and Job Configuration Teyplates.

BuildMaster-Only Components

Issue Tracker (Service / Project)Provides information and utility methods for integrating with an issue tracker
Git (Service / Repository)Provides information and utility methods for integrating with a git repository host
CI Server (Service / Project)Provides information and utility methods for integrating with a CI server
Resource MonitorUsed to montior a secure resource (source control, CI server) and trigger a script or build
Promotion RequirementAn automatic approval for a pipeline gate, to prevent builds from being deployed to a stage
Issue Source[Deprecated] Provides a list of issues from an external source, such as Jira.
Repository Monitor[Deprecated] Used to montior a source control or other repository for changes and execute a plan to create a build or relase

ProGet-Only Components

File SystemUsed by ProGet to access the underlying storage medium for package data. The default implementation uses a directory on disk.
Package Access RuleAllows for rules to block downloads of packages based on additional logic.
Package FilterAllows all locally-stored ProGet packages to be filtered from being shown in feeds by additional logic.
Vulnerability SourcePulls a list of known security vulnerabilities for packages from a third-party source.