ScienceLogic · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Skylar Compliance API
7 actions
7 updates
update
extends
../openapi/_original/sciencelogic-skylar-compliance-openapi.json
Generated by API Evangelist
Written by API Evangelist tooling for ScienceLogic's API. It is a proposal applied on top of the contract, not a document ScienceLogic publishes.
What the actions change
contactx-providerx-provider-idx-productx-published-atx-product-releasex-terms-of-servicex-conventions
Targets 3
$.info
$.servers
$.components.securitySchemes.Permissions
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Skylar Compliance API
version: 1.0.0
extends: ../openapi/_original/sciencelogic-skylar-compliance-openapi.json
x-provenance:
generated: '2026-08-29'
method: generated
source: >-
Derived from openapi/sciencelogic-skylar-compliance-openapi.json plus the ScienceLogic artifacts in this
repo (conventions/, errors/, lifecycle/, authentication/, data-model/, mcp/). The original contract is
never mutated; this overlay records what API Evangelist adds on top of it.
actions:
- target: $.info
description: Record where the contract was published and who owns it, which the original omits.
update:
contact:
name: ScienceLogic Support
url: https://support.sciencelogic.com/s/
x-provider: ScienceLogic
x-provider-id: sciencelogic
x-product: Skylar Compliance (formerly Restorepoint)
x-published-at: https://docs.sciencelogic.com/skylar_compliance/api/5-6/api.html
x-product-release: '5.6'
x-terms-of-service: https://sciencelogic.com/company/standard-terms-and-conditions-v20260116
- target: $.servers
description: >-
The original declares a single relative server (/api/v2). Record that the host is the customer's own
appliance, so a consumer knows a base URL is required and where it comes from.
update:
- url: https://{appliance}/api/v2
description: >-
Skylar Compliance is deployed as an appliance in the customer's environment. {appliance} is the
hostname or IP of that appliance; the trailing /api/v2 is fixed.
variables:
appliance:
default: skylar-compliance.example.internal
description: Hostname or IP address of the customer's Skylar Compliance appliance.
- target: $.info
description: Record the runtime semantics the contract does not declare, so an agent can plan before calling.
update:
x-conventions:
pagination:
style: offset-limit
params: [offset, limit, sort, fields, search]
limit_default: 50
limit_max: 500
response_total_field: total
idempotency:
supported: false
dry_run:
supported: false
rate_limits:
published: false
error_format: vendor-json
artifact: ../conventions/sciencelogic-conventions.yml
- target: $.info
description: >-
Record the reversibility posture — which write operations can be taken back and on what window —
because nothing in the original contract expresses it.
update:
x-reversibility:
grade: documented
reversal_operations:
- operationId: restore_backup
reverses: an unwanted device configuration change
window: bounded by customer-configured backup retention; no vendor-stated window
- operationId: cancel_job
reverses: an in-flight job
window: while the job appears in GET /jobs
- operationId: cancel_all_jobs
reverses: a bulk operation fired in error
window: while jobs appear in GET /jobs
- operationId: restore_restorepoint
reverses: a bad appliance-level change
window: bounded by customer-configured appliance archive retention
irreversible: [delete_device, delete_backup, delete_user]
artifact: ../conventions/sciencelogic-conventions.yml
- target: $.components.securitySchemes.Permissions
description: >-
The original abuses an openIdConnect scheme to publish per-operation permission requirements. Flag
that explicitly so tooling does not treat it as a usable auth flow.
update:
x-not-an-auth-scheme: true
x-purpose: >-
Documentation-only. Publishes the permission each operation requires. It is not a valid
authentication method — the contract says so in its own description.
x-permission-count: 66
- target: $.info
description: Record the error envelope, since the contract uses a bespoke shape rather than RFC 9457.
update:
x-error-format:
media_type: application/json
rfc9457: false
shape: '{ message, errors: { field: [msg] }, EncryptionStatus? }'
artifact: ../errors/sciencelogic-problem-types.yml
- target: $.info
description: >-
Record which operations an MCP client can reach today, and that the tool surface is read-only, so an
agent planner knows the difference between the contract and the agent surface.
update:
x-mcp:
server: https://github.com/ScienceLogic/mcp
deployment: self-hosted
tools_bound_to_this_contract: 17
operations_covered: 18
operations_total: 314
tool_surface: read-only
artifact: ../mcp/sciencelogic-tool-crosswalk.yml