Skip to main content

Marmot API (0.1)

Download OpenAPI specification:Download

License: MIT

API for interacting with Marmot

assets

Create a new asset

Create a new asset in the system

Request Body schema: application/json
required

Asset creation request

description
string
object
Array of objects (asset.ExternalLink)
object
name
required
string
providers
required
Array of strings
object
Array of objects (asset.AssetSource)
tags
Array of strings
type
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "metadata": { },
  • "name": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "created_by": "string",
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "id": "string",
  • "last_sync_at": "string",
  • "metadata": { },
  • "mrn": "string",
  • "name": "string",
  • "parent_mrn": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string",
  • "updated_at": "string"
}

Delete an asset

Delete an asset from the system

path Parameters
id
required
string

Asset ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Get an asset by ID

Get detailed information about a specific asset

path Parameters
id
required
string

Asset ID

Responses

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "created_by": "string",
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "id": "string",
  • "last_sync_at": "string",
  • "metadata": { },
  • "mrn": "string",
  • "name": "string",
  • "parent_mrn": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string",
  • "updated_at": "string"
}

Update an asset

Update an existing asset's information

path Parameters
id
required
string

Asset ID

Request Body schema: application/json
required

Asset update request

description
string
object
Array of objects (asset.ExternalLink)
object
name
string
providers
Array of strings
object
Array of objects (asset.AssetSource)
tags
Array of strings
type
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "metadata": { },
  • "name": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "created_by": "string",
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "id": "string",
  • "last_sync_at": "string",
  • "metadata": { },
  • "mrn": "string",
  • "name": "string",
  • "parent_mrn": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string",
  • "updated_at": "string"
}

Remove tag from asset

Remove a tag from an existing asset

path Parameters
id
required
string

Asset ID

Request Body schema: application/json
required

Tag to remove

tag
required
string

Responses

Request samples

Content type
application/json
{
  • "tag": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "created_by": "string",
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "id": "string",
  • "last_sync_at": "string",
  • "metadata": { },
  • "mrn": "string",
  • "name": "string",
  • "parent_mrn": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string",
  • "updated_at": "string"
}

Add tag to asset

Add a new tag to an existing asset

path Parameters
id
required
string

Asset ID

Request Body schema: application/json
required

Tag to add

tag
required
string

Responses

Request samples

Content type
application/json
{
  • "tag": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "created_by": "string",
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "id": "string",
  • "last_sync_at": "string",
  • "metadata": { },
  • "mrn": "string",
  • "name": "string",
  • "parent_mrn": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string",
  • "updated_at": "string"
}

Batch create assets

Create or update multiple assets in a single request

Request Body schema: application/json
required

Batch creation request

required
Array of objects (assets.CreateRequest) non-empty
object (plugin.RawPluginConfig)

Responses

Request samples

Content type
application/json
{
  • "assets": [
    ],
  • "config": { }
}

Response samples

Content type
application/json
{
  • "assets": [
    ]
}

Create asset documentation

Create or update documentation for an asset

Request Body schema: application/json
required

Documentation creation request

content
required
string
mrn
required
string
source
required
string

Responses

Request samples

Content type
application/json
{
  • "content": "string",
  • "mrn": "string",
  • "source": "string"
}

Response samples

Content type
application/json
{
  • "content": "string",
  • "created_at": "string",
  • "global_docs": [
    ],
  • "id": "string",
  • "mrn": "string",
  • "source": "string",
  • "updated_at": "string"
}

Get asset documentation

Get documentation for a specific asset

path Parameters
mrn
required
string <url>

Asset MRN

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Batch create documentation

Create or update documentation for multiple assets

Request Body schema: application/json
required

Batch documentation request

required
Array of objects (assetdocs.Documentation) non-empty
Array (non-empty)
content
string
created_at
string
global_docs
Array of strings
id
string
mrn
string
source
string
updated_at
string

Responses

Request samples

Content type
application/json
{
  • "documentation": [
    ]
}

Response samples

Content type
application/json
{
  • "results": [
    ]
}

List assets with pagination

Get a paginated list of assets

query Parameters
offset
integer

Offset for pagination

limit
integer

Limit for pagination

Responses

Response samples

Content type
application/json
{
  • "assets": [
    ],
  • "filters": {
    },
  • "total": 0
}

Lookup asset by type and name

Get an asset using its type and name

path Parameters
type
required
string

Asset type

name
required
string

Asset name

Responses

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "created_by": "string",
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "id": "string",
  • "last_sync_at": "string",
  • "metadata": { },
  • "mrn": "string",
  • "name": "string",
  • "parent_mrn": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string",
  • "updated_at": "string"
}

Match asset pattern

Find assets matching a pattern

query Parameters
pattern
required
string

Asset pattern to match

type
required
string

Asset type

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get an asset by qualified name

Get detailed information about a specific asset using its qualified name

path Parameters
qualifiedName
required
string

Asset qualified name

Responses

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "created_by": "string",
  • "description": "string",
  • "environments": {
    },
  • "external_links": [
    ],
  • "id": "string",
  • "last_sync_at": "string",
  • "metadata": { },
  • "mrn": "string",
  • "name": "string",
  • "parent_mrn": "string",
  • "providers": [
    ],
  • "schema": {
    },
  • "sources": [
    ],
  • "tags": [
    ],
  • "type": "string",
  • "updated_at": "string"
}

Search assets

Search for assets using query string and filters

query Parameters
q
string

Search query

types
Array of strings

Filter by asset types

services
Array of strings

Filter by services

tags
Array of strings

Filter by tags

limit
integer
Default: 50

Number of items to return

offset
integer
Default: 0

Number of items to skip

calculateCounts
boolean
Default: false

Calculate filter counts

Responses

Response samples

Content type
application/json
{
  • "assets": [
    ],
  • "filters": {
    },
  • "limit": 0,
  • "offset": 0,
  • "total": 0
}

Get metadata field suggestions

Get suggestions for metadata fields and their types

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get metadata value suggestions

Get suggestions for values of a specific metadata field

query Parameters
field
required
string

Metadata field name

prefix
string

Value prefix to filter by

limit
integer
Default: 10

Maximum number of suggestions

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get tag suggestions

Get suggestions for asset tags

query Parameters
prefix
string

Tag prefix to filter by

limit
integer
Default: 10

Maximum number of suggestions

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get asset summary

Get the total count of assets by type

Responses

Response samples

Content type
application/json
{
  • "services": {
    },
  • "tags": {
    },
  • "types": {
    }
}

auth

Get auth configuration

Returns the enabled auth providers without sensitive data

Responses

Response samples

Content type
application/json
{
  • "enabled_providers": [
    ]
}

Handle Okta OAuth callback

Processes the OAuth callback from Okta

query Parameters
code
required
string

Authorization code

state
required
string

State parameter for CSRF protection

Responses

Response samples

Content type
application/json
"string"

Initiate Okta OAuth login

Redirects the user to Okta for authentication

Responses

Response samples

Content type
application/json
"string"

lineage

Get asset lineage

Get upstream and downstream lineage for a specific asset

path Parameters
id
required
string <uuid>

Asset ID

query Parameters
limit
integer
Default: 10

Maximum depth of lineage graph

direction
string
Default: "both"
Enum: "upstream" "downstream" "both"

Direction of lineage (upstream, downstream, or both)

Responses

Response samples

Content type
application/json
{
  • "edges": [
    ],
  • "nodes": [
    ]
}

Batch create lineage edges

Create lineage edges in batch

Request Body schema: application/json
required

Array of lineage edges to create

Array
id
string
job_mrn
string
source
string
target
string
type
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Create direct lineage

Create a direct lineage connection between two assets and returns the created edge

Request Body schema: application/json
required

Lineage edge to create

id
string
job_mrn
string
source
string
target
string
type
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "job_mrn": "string",
  • "source": "string",
  • "target": "string",
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "job_mrn": "string",
  • "source": "string",
  • "target": "string",
  • "type": "string"
}

Delete direct lineage

Delete a direct lineage connection by its ID

path Parameters
id
required
string <uuid>

Edge ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Get direct lineage by ID

Get a specific direct lineage connection by its ID

path Parameters
id
required
string <uuid>

Edge ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "job_mrn": "string",
  • "source": "string",
  • "target": "string",
  • "type": "string"
}

users

List users

Get a list of users with optional filtering

query Parameters
limit
integer
Default: 50

Number of items to return

offset
integer
Default: 0

Number of items to skip

query
string

Search query for username or email

role_ids
Array of strings

Filter by role IDs

active
boolean

Filter by active status

Responses

Response samples

Content type
application/json
{
  • "limit": 0,
  • "offset": 0,
  • "total": 0,
  • "users": [
    ]
}

Create a new user

Create a new user in the system

Request Body schema: application/json
required

User creation request

name
required
string
oauth_provider
string
object
oauth_provider_id
string
password
string >= 8 characters
role_names
required
Array of strings non-empty
username
required
string [ 3 .. 255 ] characters

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "oauth_provider": "string",
  • "oauth_provider_data": { },
  • "oauth_provider_id": "string",
  • "password": "stringst",
  • "role_names": [
    ],
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "active": true,
  • "created_at": "string",
  • "id": "string",
  • "must_change_password": true,
  • "name": "string",
  • "preferences": { },
  • "roles": [
    ],
  • "updated_at": "string",
  • "username": "string"
}

Delete a user

Delete a user from the system

path Parameters
id
required
string

User ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Get a user by ID

Get detailed information about a specific user

path Parameters
id
required
string

User ID

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "created_at": "string",
  • "id": "string",
  • "must_change_password": true,
  • "name": "string",
  • "preferences": { },
  • "roles": [
    ],
  • "updated_at": "string",
  • "username": "string"
}

Update a user

Update user information

path Parameters
id
required
string

User ID

Request Body schema: application/json
required

User update request

active
boolean
email
string
name
string
password
string >= 8 characters
object
role_names
Array of strings non-empty

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "email": "string",
  • "name": "string",
  • "password": "stringst",
  • "preferences": { },
  • "role_names": [
    ]
}

Response samples

Content type
application/json
{
  • "active": true,
  • "created_at": "string",
  • "id": "string",
  • "must_change_password": true,
  • "name": "string",
  • "preferences": { },
  • "roles": [
    ],
  • "updated_at": "string",
  • "username": "string"
}

List API keys

Get all API keys for a user

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create API key

Create a new API key for a user

Request Body schema: application/json
required

API key creation request

expires_in_days
integer
name
required
string

Responses

Request samples

Content type
application/json
{
  • "expires_in_days": 0,
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "expires_at": "string",
  • "id": "string",
  • "key": "string",
  • "last_used_at": "string",
  • "name": "string",
  • "user_id": "string"
}

Delete API key

Delete an API key

path Parameters
id
required
string

API key ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Login user

Authenticate a user with username/email and password

Request Body schema: application/json
required

Login credentials

password
required
string
username
required
string

Responses

Request samples

Content type
application/json
{
  • "password": "string",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "expires_in": 0,
  • "requires_password_change": true,
  • "token_type": "string"
}

Get current user profile

Get detailed information about the currently authenticated user

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "created_at": "string",
  • "id": "string",
  • "must_change_password": true,
  • "name": "string",
  • "preferences": { },
  • "roles": [
    ],
  • "updated_at": "string",
  • "username": "string"
}

Link OAuth account

Link an OAuth account to an existing user

Request Body schema: application/json
required

OAuth account link request

provider
required
string
provider_user_id
required
string
user_id
required
string
required
object

Responses

Request samples

Content type
application/json
{
  • "provider": "string",
  • "provider_user_id": "string",
  • "user_id": "string",
  • "user_info": { }
}

Response samples

Content type
application/json
{
  • "error": "string"
}

Unlink OAuth account

Unlink an OAuth account from a user

path Parameters
id
required
string

User ID

provider
required
string

OAuth provider

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Update user preferences

Update preferences for the current user

Request Body schema: application/json
required

User preferences

property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "error": "string"
}

Update user password

Update current user's password

Request Body schema: application/json
required

Password update request

new_password
required
string >= 8 characters

Responses

Request samples

Content type
application/json
{
  • "new_password": "stringst"
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "expires_in": 0,
  • "requires_password_change": true,
  • "token_type": "string"
}