Skip to main content

check-ftp-access

Diagnose why an FTP or SFTP connection to ECGrid is being refused by reading the FTP setup keys on a mailbox or network and, when an FTP login name is configured, the status of the ECGrid user behind it. Use when the caller asks "why is this FTP/SFTP login blocked", "is the FTP account active", "is this IP allowed to connect", or "is the FTP user locked out / over its session limit".

networkId is required. mailboxId is optional — when supplied, keys are read from the mailbox; otherwise from the network. ip is optional — when supplied, an additional section reports whether that address matches the FTP access allowlist. ftpConfigured: false means the object exists but has no FTP setup; a missing object surfaces as NOT_FOUND.

Tool Name

connectivity_comm_check-ftp-access

Auth Level Required

Any (scoped to caller's APIKey)

Parameters

ParameterTypeRequiredDescription
request.networkIdintegerYesThe numeric ECGrid network ID that owns the FTP setup. Positive integer >= 1. Example: 7. When mailboxId is omitted, FTP keys are read at the network level.
request.mailboxIdinteger | nullNoOptional mailbox ID whose FTP setup to inspect. Positive integer >= 1 when supplied. The network root mailbox (id 0) is not addressable via this tool. When supplied, keys are read from the mailbox; when omitted, from the network. Example: 142.
request.ipstring | nullNoOptional IPv4 or IPv6 address to check against the FTP access allowlist (ftp:ipaddress key). When supplied, an ip section is added to the response reporting whether the address is allowed. Example: 203.0.113.5.

Response

Returns a data envelope with an always-present account section, an optional ip section (only when ip is supplied), and an optional user section (only when an FTP login name is configured). If the user-status lookup degrades, partial is true and warnings explains what is missing while the FTP-key data is still returned.

{
"data": {
"account": {
"ftpConfigured": true,
"status": "ACTIVE",
"loginName": "ftpuser@acme.example.com",
"hasCertificate": false
},
"ip": {
"allowed": true
},
"user": {
"lockedOut": false,
"status": "Active",
"openSessions": 1
}
},
"partial": false,
"warnings": []
}

When ip is not supplied the ip section is absent:

{
"data": {
"account": {
"ftpConfigured": true,
"status": "ACTIVE",
"loginName": "ftpuser@acme.example.com",
"hasCertificate": false
},
"user": {
"lockedOut": false,
"status": "Active",
"openSessions": 0
}
},
"partial": false,
"warnings": []
}

When FTP is not configured (ftpConfigured: false):

{
"data": {
"account": {
"ftpConfigured": false,
"status": null,
"loginName": null,
"hasCertificate": false
}
},
"partial": false,
"warnings": []
}

Response Fields

Top Level

FieldTypeDescription
dataobjectResponse envelope containing account, ip, and user sections
partialbooleantrue when the user-status lookup degraded — FTP-key data is still present
warningsarrayPlain-language descriptions of any degraded lookups

data.account

FieldTypeDescription
ftpConfiguredbooleantrue when FTP keys are present and configured on the object
statusstring | nullRaw FTP status value from ftp:status key (e.g. ACTIVE, PENDING)
loginNamestring | nullFTP login name configured on the object
hasCertificatebooleanWhether a certificate is associated — raw certificate material is never returned

data.ip (only when ip parameter is supplied)

FieldTypeDescription
allowedbooleantrue when the supplied IP matches an entry in the ftp:ipaddress allowlist

data.user (only when an FTP login name is configured)

FieldTypeDescription
lockedOutbooleanWhether the ECGrid user account is currently locked out
statusstringLifecycle status of the ECGrid user (e.g. Active, Suspended, Terminated)
openSessionsintegerNumber of currently open sessions for this user

Example Call — Check Account and IP

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "connectivity_comm_check-ftp-access",
"arguments": {
"request": {
"networkId": 7,
"mailboxId": 142,
"ip": "203.0.113.5"
}
}
}
}

Example Call — Check Account Only (No IP Test)

{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "connectivity_comm_check-ftp-access",
"arguments": {
"request": {
"networkId": 47,
"mailboxId": 500
}
}
}
}

Example Prompts

  • Why is the FTP login for mailbox 142 being refused?
  • Is IP 203.0.113.5 allowed for FTP on network 7?
  • Check FTP access status for mailbox 500 on network 47

See Also

  • test-comm — actively test FTP or AS2 delivery by sending a live test parcel
  • list-comms — enumerate all comm channels configured for a mailbox