Skip to content

Database Schema

MoeNet Core uses PostgreSQL with Sequelize ORM.

Entity Relationship

Tables

users

ColumnTypeDescription
idSERIALPrimary key
telegram_idBIGINTTelegram user ID (unique)
asnBIGINTUser's AS number (unique)
personVARCHAR(200)MNTNER name from WHOIS
is_adminBOOLEANAdmin privilege flag
is_blockedBOOLEANBlocked status
created_atTIMESTAMPRecord creation time
updated_atTIMESTAMPLast update time

routers

ColumnTypeDescription
uuidUUIDPrimary key
nameVARCHAR(100)Node identifier (e.g., jp-edge)
locationVARCHAR(200)Geographic location
ipv4VARCHAR(50)Public IPv4 address
ipv6VARCHAR(100)Public IPv6 address
callback_urlVARCHAR(200)Agent callback URL
created_atTIMESTAMPRecord creation time
updated_atTIMESTAMPLast update time

bgp_sessions

ColumnTypeDescription
uuidUUIDPrimary key
routerUUIDForeign key → routers.uuid
asnBIGINTPeer's AS number
statusSMALLINTSession status (see below)
mtuINTEGERTunnel MTU (default: 1420)
policyVARCHAR(50)Import policy
ipv4VARCHAR(50)Peer's IPv4 address
ipv6VARCHAR(100)Peer's IPv6 address
ipv6_link_localVARCHAR(100)Link-local IPv6
typeVARCHAR(20)Tunnel type (WIREGUARD)
extensionsJSONBBGP extensions config
interfaceVARCHAR(50)WireGuard interface name
endpointVARCHAR(100)Peer's WireGuard endpoint
credentialJSONBTunnel credentials (public key)
dataJSONBAdditional session data
last_errorTEXTLast error message
created_atTIMESTAMPRecord creation time
updated_atTIMESTAMPLast update time

Session Status Codes

CodeNameDescription
0DISABLEDSession disabled
1ACTIVESession active and running
2ERRORSession has errors
3PENDING_REVIEWAwaiting admin approval
4QUEUED_FOR_SETUPApproved, waiting for agent
5QUEUED_FOR_DELETEMarked for deletion
6SETUP_FAILEDAgent setup failed

settings

Key-value store for system settings.

ColumnTypeDescription
keyVARCHAR(100)Setting key (primary key)
valueTEXTSetting value

Indexes

  • users.telegram_id — Unique index for Telegram login
  • users.asn — Unique index for ASN lookup
  • bgp_sessions.router — Foreign key index
  • bgp_sessions.asn — Lookup by peer ASN
  • bgp_sessions.status — Filter by status

MoeNet DN42 Network — AS4242420998