tessl.io InstallPolicy API
The InstallPolicy API from tessl.io — 2 operation(s) for installpolicy.
The InstallPolicy API from tessl.io — 2 operation(s) for installpolicy.
openapi: 3.1.1
info:
title: Tessl Admin Keys InstallPolicy API
version: 1.0.0
description: Admin-scoped API keys for support tooling.
servers:
- url: https://api.tessl.io
tags:
- name: InstallPolicy
paths:
/v1/install/policy/evaluate:
post:
summary: Evaluate an install policy decision for a batch of plugin sources
tags:
- InstallPolicy
description: Returns a per-source allow/warn/block decision plus structured reasons. For users who belong to multiple orgs, the lowest-sorted org id wins and a warning is logged — set up an org-scoped API key to avoid the picker's arbitrary choice.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- sources
properties:
clientVersion:
type: string
context:
type: object
properties:
isCi:
type: boolean
runId:
type: string
project:
type: object
properties:
tesslProjectId:
anyOf:
- type: string
- type: 'null'
workspaceSlug:
anyOf:
- maxLength: 200
type: string
- type: 'null'
manifestPath:
type: string
gitRemoteUrl:
anyOf:
- type: string
- type: 'null'
gitCommitSha:
anyOf:
- type: string
- type: 'null'
acceptedWarnings:
type: boolean
sources:
minItems: 0
maxItems: 200
type: array
items:
anyOf:
- type: object
required:
- id
- source
- tile
properties:
id:
type: string
source:
type: string
enum:
- registry
tile:
type: object
required:
- workspaceName
- tileName
properties:
workspaceName:
type: string
tileName:
type: string
version:
type: string
- type: object
required:
- id
- source
- url
properties:
id:
type: string
source:
type: string
enum:
- git
url:
type: string
branch:
type: string
subpath:
type: string
skills:
maxItems: 200
type: array
items:
type: string
- type: object
required:
- id
- source
- path
properties:
id:
type: string
source:
type: string
enum:
- file
path:
type: string
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
required:
- links
- data
properties:
links:
type: object
required:
- self
properties:
self:
format: uri
type: string
data:
type: object
required:
- id
- type
- attributes
properties:
id:
type: string
type:
type: string
enum:
- install-policy-evaluation
attributes:
type: object
required:
- policyVersion
- orgId
- decisions
- additionalSources
properties:
policyVersion:
type: string
orgId:
anyOf:
- type: string
- type: 'null'
decisions:
type: array
items:
type: object
required:
- id
- decision
- reasons
- requiresInteractiveConfirmation
properties:
id:
type: string
decision:
anyOf:
- type: string
enum:
- allow
- type: string
enum:
- warn
- type: string
enum:
- block
resolvedSource:
anyOf:
- type: object
required:
- id
- source
- tile
properties:
id:
type: string
source:
type: string
enum:
- registry
tile:
type: object
required:
- workspaceName
- tileName
properties:
workspaceName:
type: string
tileName:
type: string
version:
type: string
- type: object
required:
- id
- source
- url
properties:
id:
type: string
source:
type: string
enum:
- git
url:
type: string
branch:
type: string
subpath:
type: string
- type: object
required:
- id
- source
- path
properties:
id:
type: string
source:
type: string
enum:
- file
path:
type: string
fallbackSource:
anyOf:
- type: object
required:
- id
- source
- tile
properties:
id:
type: string
source:
type: string
enum:
- registry
tile:
type: object
required:
- workspaceName
- tileName
properties:
workspaceName:
type: string
tileName:
type: string
version:
type: string
- type: object
required:
- id
- source
- url
properties:
id:
type: string
source:
type: string
enum:
- git
url:
type: string
branch:
type: string
subpath:
type: string
- type: object
required:
- id
- source
- path
properties:
id:
type: string
source:
type: string
enum:
- file
path:
type: string
reasons:
type: array
items:
anyOf:
- type: object
required:
- kind
- ruleId
- severity
- code
- message
- details
properties:
kind:
type: string
enum:
- security-finding
ruleId:
type: string
severity:
anyOf:
- type: string
enum:
- info
- type: string
enum:
- warn
- type: string
enum:
- error
code:
type: string
message:
type: string
details:
type: object
required:
- securityLevel
- securityStatus
- findings
- registryUrl
properties:
securityLevel:
anyOf:
- enum:
- LOW
- MEDIUM
- HIGH
- CRITICAL
type: string
- type: 'null'
securityStatus:
anyOf:
- type: string
enum:
- completed
- type: string
enum:
- failed
- type: string
enum:
- pending
- type: 'null'
findings:
type: array
items:
type: object
required:
- severity
- code
- title
- reasoning
- issueDescription
properties:
severity:
enum:
- LOW
- MEDIUM
- HIGH
- CRITICAL
type: string
code:
type: string
title:
type: string
reasoning:
type: string
issueDescription:
anyOf:
- type: string
- type: 'null'
registryUrl:
anyOf:
- type: string
- type: 'null'
- type: object
required:
- kind
- ruleId
- severity
- code
- message
- details
properties:
kind:
type: string
enum:
- source-restricted
ruleId:
type: string
severity:
type: string
enum:
- error
code:
type: string
message:
type: string
details:
type: object
properties:
registryScope:
anyOf:
- type: string
enum:
- all
- type: string
enum:
- tessl-and-org
- type: string
enum:
- org-only
deniedSourceKind:
anyOf:
- type: string
enum:
- registry
- type: string
enum:
- git
gitSource:
type: object
required:
- host
- path
properties:
host:
type: string
path:
type: array
items:
type: string
- type: object
required:
- kind
- ruleId
- severity
- code
- message
- details
properties:
kind:
type: string
enum:
- workspace-access
ruleId:
type: string
severity:
type: string
enum:
- error
code:
type: string
message:
type: string
details:
type: object
properties: {}
- type: object
required:
- kind
- ruleId
- severity
- code
- message
- details
properties:
kind:
type: string
enum:
- managed-project-unresolved
ruleId:
type: string
severity:
type: string
enum:
- error
code:
type: string
message:
type: string
details:
type: object
properties: {}
- type: object
required:
- kind
- ruleId
- severity
- code
- message
- details
properties:
kind:
type: string
enum:
- managed-project-required
ruleId:
type: string
severity:
anyOf:
- type: string
enum:
- info
- type: string
enum:
- error
code:
type: string
message:
type: string
details:
type: object
required:
- managedWorkspace
- policyName
- dependencyName
- requiredVersion
properties:
managedWorkspace:
type: string
policyName:
type: string
dependencyName:
type: string
requiredVersion:
type: string
- type: object
required:
- kind
- ruleId
- severity
- code
- message
- details
properties:
kind:
type: string
enum:
- release-age
ruleId:
type: string
severity:
type: string
enum:
- error
code:
type: string
message:
type: string
details:
type: object
required:
- requestedVersion
- requestedReleaseAgeInDays
- minimumAgeInDays
- fallbackVersion
- fallbackPublishedAt
properties:
requestedVersion:
type: string
requestedReleaseAgeInDays:
minimum: 0
type: integer
minimumAgeInDays:
minimum: 0
type: integer
fallbackVersion:
anyOf:
- type: string
- type: 'null'
fallbackPublishedAt:
anyOf:
- type: string
- type: 'null'
fallbackSecurityReasons:
type: array
items:
type: object
required:
- kind
- ruleId
- severity
- code
- message
- details
properties:
kind:
type: string
enum:
- security-finding
ruleId:
type: string
severity:
anyOf:
- type: string
enum:
- info
- type: string
enum:
- warn
- type: string
enum:
- error
code:
type: string
message:
type: string
details:
type: object
required:
- securityLevel
- securityStatus
- findings
- registryUrl
properties:
securityLevel:
anyOf:
- enum:
- LOW
- MEDIUM
- HIGH
- CRITICAL
type: string
- type: 'null'
securityStatus:
anyOf:
- type: string
enum:
- completed
- type: string
enum:
- failed
- type: string
enum:
- pending
- type: 'null'
findings:
type: array
items:
type: object
required:
- severity
- code
- title
# --- truncated at 32 KB (89 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tesslio/refs/heads/main/openapi/tesslio-installpolicy-api-openapi.yml