Inedo SDK
  • 20 May 2022
  • 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. With the Inedo SDK, you can add or modify functionality and capabilities to the product by creating an extension.

Many of the same components can be used different products, which means you can write a component once and introduce the same functionality across all of our products. Here's what you can extend:

Configuration✔*A 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.
File SystemUsed by ProGet to access the underlying storage medium for package data. The default implementation uses a directory on disk.
Issue SourceProvides a list of issues from an external source, such as Jira.
OperationA discrete task that is executed by the OtterScript runtime.
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.
Promotion RequirementAn automatic approval for a pipeline gate, to prevent builds from being deployed to a stage
Raft RepositoryA self-contained abstract file system that is used as a backing store for plans, assets, and other files.
Repository MonitorUsed to montior a source control or other repository for changes and execute a plan to create a build or relase
Secure Credential✔*A secret with secure fields that is stored in an encrypted manner. In ProGet, these are currently only used by the AD User Directory.
Secure ResourceA connection to a tool or service that may use a Secure Credential.
User DirectoryResponsible for authenticating users and groups. The default implementation uses users and groups stored in the product's database.
Variable TypeAllows for definition of an input variable used in Release Templates and Job Configurations.
Variable FunctionUsed in plans to provide or manipulate values.
Vulnerability SourcePulls a list of known security vulnerabilities for packages from a third-party source.