VibeMon / Documentation

Connect your sources. Choose your view. Build on the API.

Browse documentation · Storage schema
On this page

    Database schema

    The table name is NEXT_DYNAMODB_TABLE_NAME (default vibemon). Terraform configures on-demand billing, a string partition key PK, a string sort key SK, and TTL on the numeric Unix-seconds attribute ttl. No GSI is used.

    Rows used by monitoring and tokens contain { PK, SK, revision, data, ttl? }. revision is incremented in each conditional transaction. Missing rows begin at revision 0; persisted rows begin at 1. Rate counters and legacy memory use their own flat attributes.

    Partition key Sort key Purpose
    KEY#{sha256} TOKEN Credential lookup
    USER#{owner} TOKEN#{uuid} Owner's token metadata
    USER#{owner} SOURCE#{sourceId} Latest source state
    USER#{owner}#SOURCE#{sourceId} MINUTE#{YYYY-MM-DDTHH:mm} One-minute summary
    RATE#{owner} {category}#{epochMinute} Shared request budget
    MEMORY#{owner}#PROJECT#{projectKey} {key} Legacy key-value memory

    owner is a non-secret ID derived from Google's subject. Credentials are never part of storage keys. sourceId is independent of its display name. Legacy projectKey trims, lowercases, and replaces whitespace with hyphens.

    Minute rows set ttl and data.expiresAt to the minute start plus 86,400 seconds. Request-budget rows expire after two minutes. DynamoDB TTL deletion is asynchronous; API filtering enforces the visible retention boundary.

    Provisioning and retirement steps are in Terraform setup (maintainer repository access required). Entity fields are described in entities and the API contract.