MarBoba

Terraform provider

Reference for the marboba Terraform provider. 11 resources + 7 data sources.

The official Terraform provider — somexai-applications-group/marboba — exposes every catalog primitive declaratively. Same auth contract as the REST API and the marboba CLI: a Personal Access Token (mb_pat_*).

Install

terraform {
  required_providers {
    marboba = {
      source  = "somexai-applications-group/marboba"
      version = "~> 0.1"
    }
  }
}

provider "marboba" {
  endpoint = "https://api.marboba.com" # default
  token    = var.marboba_token         # or MARBOBA_API_TOKEN env
}

Set MARBOBA_API_TOKEN and MARBOBA_ENDPOINT env vars to skip the explicit provider block.

Resources (11)

marboba_api

AttributeTypeRequiredSensitiveDescription
idStringcomputed
nameStringyes
descriptionStringcomputed
component_idStringcomputedID of the owning component (project), or omit if unowned.
owner_team_idStringcomputedOwning team. Falls back to the component’s owning team in lookups.
kindStringcomputedrest | graphql | grpc | asyncapi | openapi | other. Defaults to rest.
lifecycleStringcomputedexperimental | production | deprecated | retired. Defaults to experimental.
spec_urlStringcomputedPointer to a hosted spec — OpenAPI JSON, .proto, schema.graphql.
tagsListcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_dependency_edge

AttributeTypeRequiredSensitiveDescription
idStringcomputed
from_kindStringyesKind of the dependent entity. One of: component, api, resource, system, domain.
from_idStringyesID of the dependent entity.
to_kindStringyesKind of the dependency target. One of: component, api, resource, system, domain.
to_idStringyesID of the dependency target.
typeStringcomputedEdge type. Default depends_on. Lowercase letters / digits / _ / -.
descriptionStringcomputedFree-form description of the relationship.
created_atStringcomputed

marboba_domain

AttributeTypeRequiredSensitiveDescription
idStringcomputed
nameStringyes
descriptionStringcomputed
owner_team_idStringcomputed
tagsListcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_oncall_binding

AttributeTypeRequiredSensitiveDescription
idStringcomputed
scopeStringyesEither team or component — what the binding targets. Immutable; changing it forces replacement.
target_idStringyesThe team id (when scope=team) or app id (when scope=component) the binding targets. Immutable; changing it forces replacement.
providerStringyesOn-call provider — pagerduty, opsgenie, or manual. Immutable; changing it forces replacement so the (scope, target_id, provider) uniqueness invariant holds.
schedule_idStringcomputedProvider-side schedule id. Required for pagerduty/opsgenie; ignored for manual. Immutable; changing it forces replacement.
labelStringcomputedHuman-readable label rendered on the in-app card. The only mutable field on a binding.
currently_on_call_user_nameStringcomputed
currently_on_call_user_emailStringcomputed
currently_on_call_user_uidStringcomputed
current_shift_starts_atStringcomputed
current_shift_ends_atStringcomputed
last_fetched_atStringcomputed
last_fetch_errorStringcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_project

AttributeTypeRequiredSensitiveDescription
idStringcomputedUnique project identifier (assigned at create time).
nameStringyesDisplay name. Required.
descriptionStringcomputedFree-form summary of the project’s purpose.
archivedBoolcomputedIf true, the project is hidden from default lists. Defaults to false.
owner_team_idStringcomputedID of the team that owns this project (drives ownership graph + on-call routing).
created_atStringcomputedISO-8601 timestamp from the server.
updated_atStringcomputedISO-8601 timestamp from the server.

marboba_resource

AttributeTypeRequiredSensitiveDescription
idStringcomputed
nameStringyes
descriptionStringcomputed
component_idStringcomputedID of the owning component (project), or omit if shared.
owner_team_idStringcomputedOwning team. Falls back to the component’s owning team in lookups.
kindStringcomputeddatabase | queue | bucket | cache | secret_store | topic | function | load_balancer | cdn | other.
providerStringcomputedCloud provider — aws | gcp | azure | firebase | cloudflare | vercel | supabase | planetscale | neon | other.
lifecycleStringcomputedexperimental | production | deprecated | retired.
console_urlStringcomputedDeep link into the cloud provider’s console for this resource.
external_idStringcomputedProvider’s ARN/URI/qualified name (S3 ARN, Pub/Sub topic, etc.).
tagsListcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_runbook

AttributeTypeRequiredSensitiveDescription
idStringcomputed
titleStringyes
body_mdStringcomputed
runbook_typeStringyesFree-form classifier — incident_response, deployment, rollback, maintenance, etc.
linked_app_idsListcomputedProject ids this runbook applies to. Drives auto-surfacing during incidents.
linked_incident_severitiesListcomputedSeverities (e.g. critical, high) that auto-surface this runbook during incidents.
tagsListcomputed
pinnedBoolcomputed
visibility_role_minStringcomputedMinimum role required to view (defaults to viewer).
generated_by_aiBoolcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_scorecard

AttributeTypeRequiredSensitiveDescription
idStringcomputed
nameStringyes
descriptionStringcomputed
applicable_kindsListyesCatalog entity kinds this scorecard applies to. One or more of: component, api, resource, system, domain.
rulesListNestedyes
typeStringyes
labelStringyes
descriptionStringcomputed
weightInt64yes
params_jsonStringno
tiersListNestedyesNamed score thresholds. Defaults to bronze=50, silver=75, gold=100 if omitted.
min_scoreInt64yes
tagsListcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_slo

AttributeTypeRequiredSensitiveDescription
idStringcomputed
nameStringyes
app_idStringyesComponent (project) this SLO applies to. Immutable; changing it forces replacement.
typeStringyesOne of: availability, latency, errorRate, throughput, custom.
targetFloat64yesTarget value. For availability/errorRate: percentage 0-100. For latency: percentile (e.g. 99 for p99). For throughput/custom: caller-defined.
unitStringcomputed
windowStringyesOne of: rolling7d, rolling30d, rolling90d, calendarMonth, calendarQuarter.
data_sourceStringcomputedWhere the current value is coming from (e.g. prometheus.requests_total). Free-form; not validated.
current_valueFloat64computed
error_budget_totalFloat64computed
error_budget_remainingFloat64computed
error_budget_percent_usedFloat64computed
statusStringcomputed
last_updated_atStringcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_system

AttributeTypeRequiredSensitiveDescription
idStringcomputed
nameStringyes
descriptionStringcomputed
owner_team_idStringcomputedTeam that owns this system.
domain_idStringcomputedParent domain id, or omit for top-level systems.
lifecycleStringcomputedexperimental | production | deprecated | retired.
component_idsListcomputedProject ids that compose this system.
api_idsListcomputedCatalog API ids that belong to this system.
resource_idsListcomputedCatalog resource ids (DBs / queues / buckets / …) owned by this system.
tagsListcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_team

AttributeTypeRequiredSensitiveDescription
idStringcomputedUnique team identifier (assigned at create time).
nameStringyesDisplay name. Required.
descriptionStringcomputedFree-form summary of what the team owns.
member_uidsListcomputedUser UIDs in the team. The first entry is treated as the team lead by some screens.
created_atStringcomputed
updated_atStringcomputed

Data sources (7)

marboba_identity_provider

AttributeTypeRequiredDescription
idStringyesIdentity provider id (the Firestore doc id, not the IdP entityID).
nameStringcomputed
protocolStringcomputedsaml | oidc.
statusStringcomputedconfiguring | active | disabled | error.
priorityInt64computedLower = preferred when multiple IdPs match a domain.
last_tested_atStringcomputed
last_test_resultStringcomputedsuccess | failed.
created_atStringcomputed
updated_atStringcomputed
samlSingleNestedcomputedSAML 2.0 configuration. Null for OIDC providers.
sso_urlStringcomputed
signing_certStringcomputedPEM-encoded IdP signing certificate.
name_id_formatStringcomputed
sign_requestsBoolcomputed
sp_entity_idStringcomputedComputed MarBoba SP entity ID — give this to the IdP.
acs_urlStringcomputedComputed assertion consumer service URL — give this to the IdP.
oidcSingleNestedcomputedOpenID Connect configuration. Null for SAML providers. Raw client secret never returned — only the vault keyword.
client_idStringcomputed
client_secret_vault_keywordStringcomputed
discovery_urlStringcomputed
authorization_endpointStringcomputed
token_endpointStringcomputed
userinfo_endpointStringcomputed
jwks_uriStringcomputed
jwks_cached_atStringcomputed
scopesListcomputed

marboba_identity_providers

AttributeTypeRequiredDescription
providersListNestedcomputed
nameStringcomputed
protocolStringcomputed
statusStringcomputed
priorityInt64computed
last_tested_atStringcomputed
last_test_resultStringcomputed
created_atStringcomputed
updated_atStringcomputed
samlSingleNestedcomputed
sso_urlStringcomputed
signing_certStringcomputed
name_id_formatStringcomputed
sign_requestsBoolcomputed
sp_entity_idStringcomputed
acs_urlStringcomputed
oidcSingleNestedcomputed
client_idStringcomputed
client_secret_vault_keywordStringcomputed
discovery_urlStringcomputed
authorization_endpointStringcomputed
token_endpointStringcomputed
userinfo_endpointStringcomputed
jwks_uriStringcomputed
jwks_cached_atStringcomputed
scopesListcomputed

marboba_project

AttributeTypeRequiredDescription
idStringyesProject id.
nameStringcomputed
descriptionStringcomputed
archivedBoolcomputed
owner_team_idStringcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_sso_domains

AttributeTypeRequiredDescription
domainsListNestedcomputed
normalized_domainStringcomputed
identity_provider_idStringcomputed
verification_statusStringcomputedpending | verified | failed | expired | conflict.
verification_methodStringcomputeddns_txt | dns_cname | http_meta | email_link.
enforcement_overrideStringcomputedinherit | disabled | optional | required.
verified_atStringcomputed
added_atStringcomputed

marboba_sso_settings

AttributeTypeRequiredDescription
enforcement_modeStringcomputeddisabled | optional | required_verified | required_all.
allow_password_fallbackBoolcomputed
break_glass_uids_countInt64computedCount only; the full UID list is not exposed via /v1.
default_identity_provider_idStringcomputed
force_jit_provisioningBoolcomputed
password_session_grace_period_minutesInt64computedGrace period after enforcement is changed. 0 = revoke immediately.
updated_atStringcomputed

marboba_team

AttributeTypeRequiredDescription
idStringyesTeam id.
nameStringcomputed
descriptionStringcomputed
member_uidsListcomputed
created_atStringcomputed
updated_atStringcomputed

marboba_user

AttributeTypeRequiredDescription
idStringyesFirebase Auth uid.
emailStringcomputed
display_nameStringcomputed
roleStringcomputed
is_activeBoolcomputed
avatar_keyStringcomputed
avatar_bg_colorStringcomputed
avatar_font_colorStringcomputed
team_idsListcomputedIds of every team this user belongs to.
last_login_atStringcomputed
created_atStringcomputed
updated_atStringcomputed

See also