ABCDQ
1
ImplementedIn-progress / work to be done
2
API Design Principles
1) POST is for creating and updating a resource.
2) Prefer plural nouns for resource naming.
3) PUT for update, and sub-resources for non-CRUD verbs; e.g. publish, generate, validate, import, download, watch, share....
4) Use kebeb-case (if two-word endpoints are actually necessary).
5) /api is not listed in the endpoints below, but is implied.
6) Bulk deletes are to be done using the POST request, because delete
requests shouldn't have body acc to REST principles.
7) HTTP response codes
200 -> request succeeded
201 -> creation succeeded
202 -> request received and async operation
204 -> request succeeded and no response body
8) APIs are named based on resources; resources are to be grouped.
This spreadsheet uses conditional formatting to colorize cells.
3
CategorySub-CategoryCurrent EndpointDescription
4
Cloud Relay
5
/swagger.yamlreturns the swagger.yaml file from file system
6
IdentityProviders, Extensions/api/providerProcess user's selection of a provider (i.e. from Provider UI)
7
/api/providersReturns the list of the available providers and its metadata
8
/api/provider/extensionLoad Extension Package
9
/providerServes the provider UI; returns html for display and interaction.
10
/provider/extension/server/{path}Serves react components from the provider package
11
/provider/extension/{asset-path}Serves static assets from the package
12
/api/provider/capabilitiesReturns the capabilities.json of the provider
13
/api/extensionReturns js file for extension
14
User/api/userReturns the userID, avatarURL, firstname, lastname, email, bio
15
/api/identity/usersReturns list of all users from remote provider
16
/api/identity/users/keysReturns list of keys of all users from remote provide
17
/api/user/prefsReturns the preferences for grafana, prometheus, adapters, loadtest, extension
18
/auth/loginRedirects to /provider
19
/user/loginRedirects user for auth or issues session
20
/user/logoutDestroys the session and redirects to provider UI
21
/api/tokenReturns the auth token and the provider type
22
/api/user/tokenReturns token from the actual provider in a file
Receives token from the actual provider
23
/api/user/schedules/{id}Returns the schedules with the given id
Deletes the schedule with given id
24
/api/user/schedulesReturns the list of all the schedules saved by the current user
Persisting the passed schedules
25
/api/user/prefs/perfPersisting load test preferences
26
Organizationapi/identity/orgsGet All orgs
27
Benchmarking and ValidationPerformance (SMP)/api/perf/profileRuns the load test with the given parameters
28
/api/perf/profileRuns the load test with the given parameters and SMP
29
/api/user/prefs/perfUser's performance preferences
30
/api/perf/profile/resultReturns pages of all the perf results from Remote Provider
31
/api/perf/profile/result/{id}Get results based on search and page size
32
/api/perf/profile/resultfetchs pages of results from Remote Provider and presents it to the UI
33
/api/meshList of all service meshes for SMP
34
/user/performance/profilesReturns a list of all performance profiles saved by the current user
35
/user/performance/profiles/resultsReturns the list of all the performance profile results
36
/user/performance/profiles/{id}resultsReturns the results for performance profile with the given id
37
Conformance (SMI)/api/smi/results/{id}Get SMI results based on id
38
/api/smi/resultsGet SMI results based on search and page size from the provider
39
TelemetryGrafana API/api/telemetry/metrics/grafana/configpersists or removes graphana configuration
40
/api/telemetry/metrics/grafana/boardsfetches grafana boards and panels
41
/api/telemetry/metrics/grafana/queryhandles grafana queries
42
/grafana/query_rangehandles grafana range queries
43
/api/telemetry/metrics/grafana/pinginitiates a grafana ping
44
/api/telemetry/metrics/grafana/scanfetches grafana details such as status, metadata, and spec
45
Prometheus API/api/telemetry/metrics/configpersists prometheus configuration
46
/api/telemetry/metrics/board_importaccepts a Grafana board json, parses it and returns the list of panels
47
/api/telemetry/metrics/queryhandles prometheus queries
48
/prometheus/query_rangehandles prometheus range queries
49
/api/telemetry/metrics/pingfetches server version to simulate ping
50
/api/telemetry/metrics/static-boardreturns the static board
51
/api/telemetry/metrics/boardspersists selected boards and panels
52
ConfigurationPatterns/api/pattern/deployhandles deployment of the services specified in the pattern
POST=>DEPLOY
DELETE=>UNDEPLOY
_
53
/api/patternhandle GET and POST requests for patternsGetMesheryPatterns (/api/content/patterns) / SaveMesheryPattern (/api/content/patterns)
54
/api/pattern/catalog/unpublishhandle DELETE request to unpublish catalog patternUnPublishCatalogPattern (api/catalog/content/:type/)
55
/api/pattern/catalog/publishhandle POST request to publish a catalog patternPublishCatalogPattern (/api/catalog/content/:type/)
56
/api/pattern/importhandle POST request to import a catalog pattern DesignFileImportHandler
57
/api/pattern/clone/{id}handle POST and Creates a local copy of a public pattern with id: idCloneMesheryPattern (api/content/patterns/clone/:id)
58
/api/pattern/download/{id}/{sourcetype}handle GET request to get source type of PatternSaveMesheryPatternSourceContent ( api/content/patterns/download/:id )
59
/api/pattern/download/{id}downloads the patternfile DownloadMesheryPatternHandler
60
/api/pattern/catalogUsed to GET catalog patternsGetCatalogMesheryPatterns (/api/catalog/content/:type)
61
api/pattern/{sourcetype}Handle PUT and POST requestSaveMesheryPattern (/api/content/patterns)
62
/api/pattern/{id}Handle GET and Delete request to read and delete patternGetMesheryPattern (/api/content/patterns/:id) / DeleteMesheryPatternHandler ( api/content/patterns/:id)
63
/api/oam/workloadGET and POST on OAM workloads_
64
/api/patterns/deleteDeletes multiple patterns at once, takes {id: patternId, name: PatternName} as the POST request body to delete multiple patterns.DeleteMesheryPatterns ( api/content/patterns )
65
Fitlers/api/filterGet details of all filters (GET). Create a new filter (POST) with import functionality involved. To update details of an existing filter (POST) with filter id.
66
/api/filter/catalogUsed to GET catalog filters
67
/api/experimental/filter/{id}Get details of a specific filter (GET).
68
Application/api/application/deployhandles deployment of the application
POST=>DEPLOY
DELETE=>UNDEPLOY
69
/api/application/{sourcetype}Updates the design for given application(PUT),
Creates a new application with source-content(POST)
70
/api/applicationFetches the list of all applications saved by the current user
71
/api/application/{id}meshery's component manifest
72
/api/application/typesGet application file type
73
/api/application/download/{id}Get the design file for the application
74
/api/application/download/{id}/{sourcetype}Get the application source-content
75
Meshery Server and ComponentsMeshery Operator/api/system/graphql/queryGraphQL server Endpoint
76
/system/operator/statusdeprecated
77
/system/operatordeprecated
78
Database/system/database/reset
Copy existing local db file at some other place. Create new db file in .meshery/config folder
79
/system/databaseGET returns summary: list of table names and number of records for each table
80
Connections/api/system/kubernetes/pingGET pings and Fetches kubernetes server version to simulate ping
81
/api/system/kubernetes/contexts/{id}GETS or DELETEs a particular k8s context
82
/api/system/kubernetes/contextsGETS all kubernetes contexts
POST Returns the context list for a given k8s config
83
/api/system/kubernetesPOST uploads kubernetes config
84
/api/system/meshsync/prometheusGET request for fetching prometheus
85
/api/system/meshsync/grafanaGET request for mesh-sync grafana
86
/api/integrations/connections/{connectionKind}GET request for connections by {connectionKind}
87
/api/integrations/connectionsGET request for connections
88
System/api/eventsUsed for streaming events to the frontend
89
/api/v2/eventsSend UI Generated Events
90
/api/system/events/{id}DELETE Event associated with the id.
91
/api/system/events/bulkDELETE Bulk events associated with the ids.
92
/api/system/events/status/{id}PUT Updates event status for the event associated with the id.
93
/api/system/events/status/bulkPUT Bulk update status for the events associated with the ids.
94
/api/system/events/typesGET Available event categories and actions.
95
/api/system/events/configPUT Event related configuration (ex: log level)
96
/api/system/events/configGET Event related configuration (ex: log level)
97
/api/system/eventsGET All events
98
/api/system/eventsPOST UI generated events to the server
99
/api/extension/versionReturns the version of extension
100
/api/system/versionReturns the version of the meshery server and its metadata