Development API: Gateway API Reference
This page summarizes commonly used interfaces for GatewayRuntime, Studio, and Watchdog. Before calling the interface, please complete login and bring a valid token (the access credential obtained after login) in the request.
This page is not the main reading path for ordinary end users, but rather a reference for system integration and secondary development, used for top-level computers, MES, SCADA, cloud platforms, or self-developed program integration. On-site electrical engineers usually do not need to start with APIs for daily configuration and troubleshooting; For data collection, debugging, data forwarding, and alarm handling, please read the corresponding operation manual first.
Interfaces such as writing variables, restarting runtime, modifying networks, adjusting permissions, and importing configurations can affect the field system. Before the integration program goes live, permissions, parameters, error handling, and retry policies should be verified in the test environment, and the minimum necessary permissions should be assigned to production accounts.
Interface Terminology Comparison
| Terminology | On-site Understanding |
|---|---|
| Token | The access credential obtained after login, which external systems must carry every time they call the interface. |
| Write variables | Assign values to the external system or page to a point, equivalent to what is commonly called "writing the point backward" on site. |
| Target variable property | An external mapping of a forwarding target to a single variable, such as an external field name, Modbus slave address, sampling policy, or write permission. |
| Forwarding Group Variables | Which variables are actually included in a data forwarding group. Under Manual Selection Range, variables are first added to the forwarding group, and only then will the attributes of the target variable take effect. |
| Topics/paths in message systems such as MQTT and Kafka, topics/paths; external systems receive or subscribe to data under this name. |
Basic Agreements
| Project | Explanation |
|---|---|
| GatewayRuntime default address | http://<gateway-ip>:6100 |
| Studio default address | http://<StudioIP>:5100 |
| Watchdog default address | http://<gateway-ip>:6200 |
| Data format | Standard interface uses JSON; File import, upload, and export interfaces use form files or file streams. |
| Authentication Methods | Use Bearer Tokens after logging in; If unauthorized or the token is invalid, you need to log in again. |
| Return Result | Interfaces typically return a unified result structure; the caller should determine success based on status codes and messages. |
Studio and Watchdog listen on 0.0.0.0 by default, and the current version allows clients to call them over standard http://<ip>:<port> addresses. Standard HTTP access requires remote management and AllowInsecureRemoteHttp to be enabled. Watchdog project deployment and process control also require RemoteDeploymentEnabled.
Retrieve OpenAPI JSON
GatewayRuntime provides a standard OpenAPI JSON document at the following address:
GET http://<gateway-ip>:6100/api/openapi.json
You can also save the document to a local file with curl:
curl http://<gateway-ip>:6100/api/openapi.json -o openapi.json
The returned JSON can be imported into Swagger Editor, Postman, or other OpenAPI-compatible clients and code generators. Use the document returned by the target GatewayRuntime version as the authoritative interface definition.
Studio and Watchdog Password Challenge Protocol
Studio and Watchdog login and initial initialization passwords are not directly entered into JSON requests. The client must call according to the following current protocols:
- Call the corresponding cryptographic public key endpoint to obtain
keyId,publicKey,algorithm,nonce, andexpiresAt. - Confirm that
algorithmequalsRSA-OAEP-SHA256. - Use the RSA 2048 SubjectPublicKeyInfo DER Base64 public key in the
publicKeyto encrypt the following UTF-8 JSON. Field names are case-fixed.
{
"Password": "The actual password",
"Nonce": "NONCE in public key responses"
}
- Encode the RSA-OAEP-SHA256 ciphertext in Base64 as the
passwordfor login or initialization requests; At the same time,keyIdis submitted as thepasswordKeyId. - After successful login, subsequent protected requests are uniformly sent
Authorization: Bearer <token>.
Public Key Challenge expires in two minutes and can only be used once. Whether the server succeeds or fails in decryption, the challenge will be invalidated; If the attempt fails, the public key must be reacquired. The current protocol does not accept Basic Authentication, plaintext login passwords, RSA-OAEP-SHA1, or old request fields as rollbacks.
Browser clients can use node-forge to execute RSA-OAEP-SHA256 on a regular HTTP IP page and generate OAEP random seeds using crypto.getRandomValues; Do not rely on the crypto.subtle.importKey, which is usually unavailable in this scenario.
one-time RSA challenges only provide additional protection for login and initialized password fields, and cannot replace TLS. Bearer tokens, initialization tokens, password change requests, engineering packages, backups, and other business data are still not transmitted with encryption over a regular HTTP link. Public or untrusted networks should use HTTPS.
GatewayRuntime Authentication Interface
| Method | Path | Purpose |
|---|---|---|
| GET | /api/auth/GetLoginPasswordPublicKey | Get login password encryption public key |
| POST | /api/auth/Login | User login |
| POST | /api/auth/RefreshToken | Refresh Token |
| POST | /api/auth/ChangePassword | Change the current user password |
| POST | /api/auth/Logout | Log out the current session |
| POST | /api/auth/LogoutAll | Delete all current user sessions |
| POST | /api/auth/Me | Get current user information |
| POST | /api/auth/GetMyMenus | Get the menu accessible by the current user |
| POST | /api/auth/GetUserPermissions | Get current user permissions |
| GET | /api/auth/GetOAuth2Providers | Get OAuth2 providers |
| GET | /api/auth/GetRuntimeConfig | Get runtime configuration for login page |
| POST | /api/auth/OAuth2Exchange | OAuth2 Authorization code exchange |
| POST | /api/auth/OAuth2Link | Bind OAuth2 account |
| POST | /api/auth/OAuth2Unlink | Unbind OAuth2 account |
| POST | /api/auth/GetOAuth2Accounts | Get bound OAuth2 account |
GatewayRuntime Overview and Metadata
| Methods | Path | Purpose |
|---|---|---|
| GET | /api/gatewayoverviewcontroller/getgatewaytotal | Obtain channel, Equipment, variables, alarm statistics |
| GET | /api/gatewayoverviewcontroller/getcollectdevices | Get an overview of the collection device |
| GET | /api/gatewayoverviewcontroller/getchanneldevice | Get the channel and device summary by device |
| GET | /api/gatewayoverviewcontroller/getofflinedevices | Get the list of offline devices |
| POST | /api/gatewayoverviewcontroller/inserttestdata, inserttestdtudata | Generate demo data or DTU demo data |
| POST | /api/gatewayoverviewcontroller/getchannelstatuspagelist | Paginate channel status |
| POST | /api/gatewayoverviewcontroller/getdevicestatuspagelist | Paginate device status |
| POST | /api/gatewayoverviewcontroller/getvariablestatuspagelist | Retrieve variable status from page |
| GET | /api/gatewaysystemcontroller/getsysteminfo | Get system information such as CPU, memory, disk, and runtime |
| GET | /api/gatewayprojectcontroller/getprojectinfo | Get the current project information |
| GET | /api/gatewayplugincontroller/getplugincatalog?pluginType=Collect, ?pluginType=DataForward | Get the complete plugin catalog, optionally filtered by plugin type |
| GET | /api/gatewaymetadatacontroller/getchanneltypes?pluginName=<collection-plugin-full-name> | Gets the channel types supported by the collection plugin. The device editor uses this result to determine whether "Channel" is required. |
| GET | /api/gatewaymetadatacontroller/getchannelselectlist | Get the channel dropdown list |
| GET | /api/gatewaymetadatacontroller/getdeviceselectlist | Get the device dropdown list |
| GET | /api/gatewaymetadatacontroller/getvariableselectlist | Get the variable dropdown list |
| GET | /api/gatewaymetadatacontroller/getdatatypes,getdriverpropertyinfo, getaddressdescription | Get the data type of the collection plugin, Property Definition and Address Description |
| GET | /api/gatewaymetadatacontroller/getdataforwardtargetpropertyinfo, getdataforwardvariablepropertyinfo | Retrieve data forwarding target attributes and target variable attribute definitions |
Collect and configure interfaces
| Objects | Main paths | Purpose |
|---|---|---|
| Channel | /api/channelcontroller/addchannel, updatechannel, deletechannel, batcheditchannel, copychannel | Add, edit, delete, batch edit, copy |
| Channel import and export | /api/channelcontroller/channelexcelexport,channelpageexcelexport, channelexcelimport | channel Excel import/export |
| device | /api/devicecontroller/adddevice, updatedevice, deletedevice, batcheditdevice, copydevice | Add device, edit, delete, batch edit, copy |
| Device import and export | /api/devicecontroller/deviceexcelexport,devicepageexcelexport, deviceexcelimport | Device Excel import and export |
| variable | /api/variablecontroller/addvariable, updatevariable, deletevariable, batcheditvariable, copyvariable | Add, edit, delete, batch edit, copy variables |
| Variable import and export | /api/variablecontroller/variableexcelexport, variableexcelimport, gatewaydataexcelexport, gatewaydataexcelimport | Import and export variables and gateway configuration. |
| Write variable | /api/gatewaywritevariablecontroller/setvariablevalue | Write variable value |
Data forwarding interface
| method | path | purpose |
|---|---|---|
| GET | /api/gatewaydataforwardcontroller/getgroups | Get forwarding group |
| GET | /api/gatewaydataforwardcontroller/gettargets | Get forwarded targets |
| POST | /api/gatewaydataforwardcontroller/getgroupvariablespage | Get one forwarding group's variable relations by page |
| GET | /api/gatewaydataforwardcontroller/getgroupvariable, getgroupvariableoptions | Get one group relation or remotely search variables in the group |
| POST | /api/gatewaydataforwardcontroller/gettargetvariablepropertiespage | Get one target's variable properties by page |
| GET | /api/gatewaydataforwardcontroller/gettargetvariableproperty, getconfigurationcounts | Get one target variable property or navigation counts |
| GET | /api/gatewaydataforwardcontroller/getruntime | Get the data forwarding running status |
| POST | /api/gatewaydataforwardcontroller/addgroup, updategroup, deletegroup, restartgroup | forwardgroup maintenance |
| POST | /api/gatewaydataforwardcontroller/addtarget,updatetarget,deletetarget, restarttarget | forwarding target maintenance |
| POST | /api/gatewaydataforwardcontroller/switchtargetredundant | Manually switch the redundancy state of forwarded targets |
| POST | /api/gatewaydataforwardcontroller/savegroupvariablechanges | Incrementally save changed and deleted forwarding group variables |
| POST | /api/gatewaydataforwardcontroller/upserttargetvariableproperty, deletetargetvariableproperty | Save or delete target variable properties |
| POST | /api/gatewaydataforwardcontroller/getgrouplog, gettargetlog | query and forward runlog |
| POST | /api/gatewaydataforwardcontroller/updategrouploglevel, updatetargetloglevel | Adjust forwarding group or forwarding target log level |
| POST | /api/gatewaydataforwardcontroller/exportgrouplog, exporttargetlog | export and forwarding runlog |
| POST | /api/gatewaydataforwardcontroller/dataforwardexcelexport, dataforwardexcelimport | data forwarding configuration import and export |
In the data forwarding interface, forwarding group variable relations determine whether a variable belongs to a group, while target variable properties only describe how one target uses it. Group relations and target properties are paged by one group or target with a maximum page size of 200; remote group-variable searches return at most 50 candidates. In Manual scope, add the variable to the group through savegroupvariablechanges before saving target variable properties.
Data Query and Real-Time Alarm Interface
| Methods | Paths | Uses |
|---|---|---|
| POST | /api/gatewayrealdatacontroller/GetRealDataRecordsByTarget | Query real-time data records |
| GET | /api/gatewayrealdatacontroller/GetRealDataTargetNames | Get real-time data targets |
| POST | /api/gatewayrealdatacontroller/ExportRealDataRecords | Export real-time data records |
| POST | /api/gatewayhisdatacontroller/GetHisDataRecordsByTarget | Query historical data records |
| POST | /api/gatewayhisdatacontroller/GetHisNumberDataRecordsByTarget | Query historical numerical data |
| POST | /api/gatewayhisdatacontroller/GetTypedHisDataRecordsByTarget, GetTypedHisNumberDataRecordsByTarget | Sort and query typed history by UTC time range, variable set, pagination, and whitelist |
| POST | /api/gatewayhisdatacontroller/GetHisNumberSeriesByTarget | query Auto, Raw, Average, Minimum, Maximum, First, Last Historical numerical sequences in different modes |
| GET | /api/gatewayhisdatacontroller/GetHisDataTargetNames | Get historical data targets |
| POST | /api/gatewayhisdatacontroller/ExportHisDataRecords, ExportHisNumberDataRecords | Export historical strings or numeric data |
| POST | /api/customsqldatacontroller/GetCustomSqlDataByTarget | query custom SQL historical data |
| GET | /api/customsqldatacontroller/GetCustomSqlColumns | Get custom SQL columns |
| POST | /api/customsqldatacontroller/ExportCustomSqlData | Export custom SQL data |
| POST | /api/gatewayrealalarmcontroller/getrealalarmvariables | query real-time alarm |
| POST | /api/gatewayrealalarmcontroller/confirmalarm | Confirm real-time alarm |
| POST | /api/gatewayhisalarmcontroller/GetHisAlarmRecordsByTarget | Query historical alarms |
| GET | /api/gatewayhisalarmcontroller/GetHisAlarmTargetNames | Get historical alarm targets |
| POST | /api/gatewayhisalarmcontroller/ExportHisAlarmRecords | Export History Alarms |
Historical query contract
Historical paging endpoints use the following common request fields:
| Field | Description |
|---|---|
targetName | Name of a saved and queryable historical data-forwarding target. |
current | Page number, starting at 1. |
size | Page size; stay within the configured limit instead of requesting all history. |
sortField | Standard history uses property asc/desc, for example createTime desc; custom SQL wide tables must use an actual returned column, for example event_time desc. Clear the previous sort when changing targets. |
conditionalModel | Variable ID and time-range conditions for standard history; custom wide-table fields must exist in the target table. |
timeZoneId | Time zone used by export endpoints; the query page uses the target's configured time zone. |
Standard history endpoints return wall-clock values projected to the target's configured time zone. The typed endpoints GetTypedHisDataRecordsByTarget and GetTypedHisNumberDataRecordsByTarget use UTC time ranges and return UTC instants. Custom SQL endpoints return the target table's raw columns and values: IoTDB and QuestDB wide-table timestamps may retain a Z suffix, which means UTC and must not be converted twice.
Custom SQL columns
Call /api/customsqldatacontroller/GetCustomSqlColumns?targetName=... and build the table and filters from the returned column set. The first column is the target time column used for time-range filtering and descending order; the remaining columns come from CustomTemplateConfig.Columns. Do not force standard CreateTime, VariableId, or Value fields onto a custom wide table.
Custom SQL queries still return paged records and total. total is the database count under the target, time range, and conditions, not records.length; clients must drive pagination from the server total.
Query limits
Typed history, numeric series, and export endpoints are protected by the variable-count, time-range, page-size, series-point, source-record, and export-row limits in Configuration/HisDataQueryOptions.json. Split wide ranges or use series aggregation instead of requesting millions of raw rows in one call.
Typed historical queries should use the UTC start and end times and are protected by variable count, time span, page size, sequence number of points, source record count, and export row limits. The default upper limit is maintained in Configuration/HisDataQueryOptions.json; The integrator should design requirements based on pagination and numerical sequence aggregation capabilities, and should not pull all original records at once over an extremely large time frame.
MQTT clients and MQTT server producers can call the same history capabilities through the default RpcHistory topic. The request topic is RpcHistory/<32-character-hex-request-id>, and the response topic is RpcHistory/<request-id>/Response. The protocol supports target queries, record queries, numeric sequences, historical alarms, alarm confirmation, and request cancellation. Large responses are compressed with gzip and split into Base64 blocks, subject to request body, response body, block size, concurrency, and timeout limits.
Device and forwarding target debugging interface
| Module | Main path | Purpose |
|---|---|---|
| Debug Objects | /api/debugController/getsubject, canhandle | Obtain debugging objects and capabilities for collection devices or forwarding targets |
| Basic Read and Write | /api/debugController/read,write,batchread, batchwrite | Foundation class device address read/write and batch read/write |
| TCP server | /api/debugController/gettcpclients, querytcpclients, kicktcpclient | Load action options, page through, or disconnect TCP server clients |
| OPC UA | /api/opcUaController/browse,readnode,writenode,subscribe,unsubscribe,getsubscriptions,readnodeattribute,exportvariables, importtodatabase | OPC UA nodes for browsing, reading, writing, subscription, and variable import and export |
| OPC DA | /api/opcDaController/browse, readnode, writenode, subscribe, unsubscribe, getsubscriptions, exportvariables, importtodatabase | OPC DA nodes browsing, read/write, subscribe, and variable import/export |
| MQTT Client | /api/mqttClientController/publish,subscribe,unsubscribe, getsubscriptions | MQTT client publishing, subscriptions, and subscription lists |
| MQTT Server | /api/mqttserverController/getclients,getstats,kickclient, publish | MQTT server client, Topic statistics, kicking out clients, and publishing tests |
| Kafka / RabbitMQ | /api/kafkaController/publish, /api/rabbitmqController/publish | Kafka Topic or RabbitMQ Routing Key Publishing Test |
| CAN / ZeroMQ | /api/canController/sendFrame, readFrame, /api/zeroMQController/publish | CAN frame send/receive and ZeroMQ publish testing. |
| IEC61850 Client | /api/iec61850Controller/GetLogicalDeviceList,GetDataDirectory,ReadValue,WriteValue,BrowseModel,GetConnectionStatus,GetLogicalNodeDirectory,GetReportSubscriptionStatus,GetGooseSubscriptionStatus,GetFileDirectoryPage,ReadJournalPage,ReadDataSet,GetDataSetDirectory,GetControlModel,ControlOperate | IEC61850 client model browsing, read/write, paged files and journals, report/GOOSE status, and controls |
| IEC61850 Server | /api/iec61850ServerController/GetLogicalDeviceList,GetDataModelTree,BrowseModel,GetConnectionCount,GetConnectedClientsPage,GetCatalogOptions,GetCatalogPage,ReadJournalPage,ReadAttributeValue,WriteAttributeValue,GetServerStatus,GetVariableMapStats,GetUnmappedVariablesPage | IEC61850 server model, paged clients/resources/journals/unmapped variables, and variable mapping diagnostics |
| IEC61850/IEC104 master SOE | /api/iec61850Controller/GetSoeEvents, ExportSoeEvents; /api/iec104MasterController/GetSoeEvents, ExportSoeEvents | Querying and exporting SOE events for the selected master instance |
Rules, scripts, node interfaces
| modules | main paths | Purpose |
|---|---|---|
| Rule flow | /api/gatewayruleenginecontroller/getruleflowspaged,saveruleflow,deleteruleflows, toggleflowenabled | rule flow query, save, delete, start/stop |
| rule run | /api/gatewayruleenginecontroller/getruleenginestatus,getallflownodevalues, getruleenginelog | rule runtime, node values, logs |
| rule import and export | /api/gatewayruleenginecontroller/ruleflowexcelexport, ruleflowexcelimport | rules Excel import and export |
| scripts | /api/gatewayscriptcontroller/getscriptlist,createscript,deletescripts,compilescript, compileallscripts | Paged script list, create, delete, compile |
| Script metadata | /api/gatewayscriptcontroller/getregisteredexpressionspaged,getexpressioncategories, getscriptcategories | Registered expressions, classifications |
| Custom nodes | /api/gatewaycustomnodecontroller/getlocalcustomnodes,getcustomnodespaged,createcustomnode,deletecustomnodes,compileallcustomnodes | Paged local and loaded node lists, create, delete, batch compile |
| Editor assistant | /api/completion/complete,codecheck,signaturehelp,hover,definition, formatcode | Script and node editor code hints, checking, and formatting |
Plugins, certificates, and system settings interfaces
| modules | main paths | Uses |
|---|---|---|
| Plugin | /api/gatewayplugincontroller/getplugincatalog, updatepluginenable, batchenableplugins, batchdisableplugins, syncpluginconfigs | Complete plugin catalog, enable/disable, synchronize |
| Certificates | /api/certificatecontroller/getcertificates, addcertificate, updatecertificate, deletecertificates, generatecertificateauthority, generateservercertificate, generateclientcertificate, exportcertificate, exportprivatecertificate, getcertificateselectlist | TAdmin certificate queries, uploads, updates, deletion, generation, export, and selection lists. |
| alarm configuration | /api/gatewayalarmconfigcontroller/GetAlarmConfig, UpdateAlarmConfig | alarm recovery policy |
| Redundancy | /api/gatewayredundantcontroller/getsitecollectstate,GetSiteDataForwardState,getredundancyoptions,setredundancyoptions, switchredundantstate | gateway collect/forwarding status, master-standby redundancy configuration, and state switching |
| Network | /api/gatewaynetworkconfigcontroller/getnetworkconfigs, setnetworkconfig | network card configuration query and settings |
| time synchronization | /api/gatewaytimecontroller/getsystemtime,setsystemtime,getntpconfig,setntpconfig, syncntptime | system time and NTP configuration |
| system control | /api/gatewayrestartcontroller/restartgateway,restartruntime, restartapplication | Restart gateway, runtime, or application |
| Backup | /api/backupcontroller/backupconfigdatabase | Backup configuration database |
| PING | /api/gatewaypingcontroller/pingtest | Network connectivity testing |
Certificate management has been migrated to the TAdmin unified module. Old /api/gatewaycertificatecontroller/... The controller is no longer the current interface; The caller must switch to /api/certificatecontroller/..., synchronously adjusting the action names such as generatecertificateauthority, deletecertificates, and certificate:* permission code.
Log Interface
| Log Type | Main Path |
|---|---|
| Backend Log | /api/backendlogcontroller/getbackendlog,getbackendlogsources,getallbackendlog,exportbackendlog, exportallbackendlog |
| Channel Log | /api/channelcontroller/getchannellog,updatechannelloglevel, exportchannellog |
| device log | /api/devicecontroller/getdevicelog,updatedeviceloglevel, exportdevicelog |
| Operation Logs | /api/adminsystemlogcontroller/getoperatelog, /api/adminsystemlogcontroller/exportoperatelog |
| RPC logs | /api/rpclogcontroller/getrpclog, exportrpclog |
| SQL Logs | /api/adminsystemlogcontroller/getsqllog, /api/adminsystemlogcontroller/exportsqllog |
| audit logs | /api/adminauditlogcontroller/getloginaudit,getpermissionaudit, getusersecurityaudit and corresponding export interfaces |
Management permissions interface
| Object | Main path | Purpose |
|---|---|---|
| User | /api/gatewayusercontroller/getusers,adduser, updateuser, setroles, resetpassword, lock, unlock, deleteuser | User Lifecycle and Role Allocation |
| Sessions | /api/gatewayusercontroller/getusersessions,revokesession, setsessionrevoked | User Session Management |
| Role | /api/gatewayrolecontroller/getroles, addrole, updaterole, copyrole, setpermissions, previewpermissiondiff, getpermissioncatalog, getallapimethods, getallbuttons, getrolebyid, deleterole | Role and permission maintenance |
| Menu | /api/gatewaymenucontroller/getmenutree,savemenu,validatemenu,movemenu,setmenuenabled,setmenuvisible, deletemenu | Menu tree maintenance |
| button | /api/gatewaybuttoncontroller/getbuttons, getbuttonsbymenuid, getallbuttons, addbutton, updatebutton, deletebutton | Button permission maintenance |
Studio and Watchdog interface
Studio authentication
| methods | Path | Description |
|---|---|---|
GET | /api/auth/GetLoginPasswordPublicKey | Get a one-time RSA-OAEP-SHA256 password challenge valid for two minutes. |
GET | /api/auth/BootstrapStatus | Check whether the first administrator initialization is required. |
POST | /api/auth/Bootstrap | Use token,passwordKeyId, password Base64 ciphertext password Initialize administrator. |
POST | /api/auth/Login | using name,passwordKeyId, password Base64 ciphertext password login. |
POST | /api/auth/ChangePassword | Use Studio JWT Bearer to change the current password and return the reissued JWT. |
Studio returns a JWT Bearer valid for seven days after successful login. The initial initialization token is located in the runtime directory Data/studio_bootstrap.token. After successful initialization, it is deleted; Initialization allows IP addresses from remote management enabled.
Watchdog Authentication
| Method | Path | Description |
|---|---|---|
GET | /api/watchdog/login/password-public-key | Get a one-time RSA-OAEP-SHA256 password challenge valid for two minutes. |
GET | /api/watchdog/bootstrap/status | Check whether the first administrator initialization is required. |
POST | /api/watchdog/bootstrap | Use token, passwordKeyId, password Base64 ciphertext password Initialize administrator. |
POST | /api/watchdog/login | to use username,passwordKeyId, password Base64 ciphertext password login. |
POST | /api/watchdog/logout | Undo the current Bearer session. |
After successfully logging in, Watchdog returns accessToken,username, and expiresAt. The token is an eight-hour valid random opaque value, and the server only stores the SHA-256 digest in memory; Stopped working after logging out or restarting Watchdog. The initial initialization token is located in the runtime directory Data/watchdog_bootstrap.token and is deleted after successful initialization.
| Application | Main Paths | Purpose: |
|---|---|---|
| Studio Authentication | /api/auth/GetLoginPasswordPublicKey,BootstrapStatus,Bootstrap,Login, ChangePassword | Studio One-Time Password Challenge, Initialization, Login, and Password Change |
| Studio projects | /api/project/list, create, update, import | List, create, edit, and import projects. |
| Studio runtime | /api/runtime/current-project, start, stop, gateway-version, app-version | Local runtime status and versions |
| Studio Watchdog | /api/watchdog/configs,config/save, :upload, download | Watchdog connection, upload, download |
| Studio tunnel | /api/tunnel/status,listeners,config,start, stop | tunnel proxy status and configuration |
| Watchdog authentication | /api/watchdog/login/password-public-key,bootstrap/status,bootstrap,login, logout | Watchdog one-time password challenge, initialization, bearer login and logout |
| Watchdog status | /api/watchdog/status,projects,logs, backups | dashboard, project, logs, backup |
| Watchdog project | /api/watchdog/project/upload, project/download/{name}, apply/{name}, project/{name} | project upload, download, apply, delete, |
| Watchdog process | /api/watchdog/restart, stop | Restart or stop the gateway while running |
| Watchdog backup | /api/watchdog/backup/create, backup/restore/{name}, backup/{name} | create, restore, delete backups |
| Watchdog tunnel | /api/watchdog/tunnel/status, activate/{name}, deactivate/{name}, activate-all, deactivate-all | tunnel client status and start/stop |
| Watchdog settings | /api/watchdog/options, change-password | Watchdog Configuration and Password Change |
Usage Note
- Interface Paths Call according to the case and path in the table.
- Import/export, upload, and download interfaces may return files or receive form files; please call them in the request format in the interface documentation.
- Management interfaces are restricted by menu, button, and API permissions; If the role authorization is insufficient, even if the token is valid, it may return as no permission.