Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a basic web server #1041

Merged
merged 13 commits into from
Feb 16, 2024
Merged

Add a basic web server #1041

merged 13 commits into from
Feb 16, 2024

Conversation

imobachgs
Copy link
Contributor

@imobachgs imobachgs commented Feb 15, 2024

Trello: https://trello.com/c/msRHsnpV/3570-3-build-a-basic-agama-web-server

This PR introduces the web server for Agama's 2024 architecture. At this point, it implements:

  • A /ping endpoint.
  • A simple WebSocket to receive progress events. It is just a proof-of-concept and even the format should be adapted.
  • Tracing/logging.

Additionally, it is able to export the description of the API using OpenAPI.

Usage

The new binary implements two subcommands: serve and openapi.

Running the server

$ agama-web-server serve --help
Start the API server

Usage: agama-web-server serve [OPTIONS]

Options:
      --address <ADDRESS>  Address to listen on (default: "0.0.0.0:3000") [default: 0.0.0.0:3000]
  -h, --help               Print help

Generating the OpenAPI documentation

$ agama-web-sever openapi
{
  "openapi": "3.0.3",
  "info": {
    "title": "agama-dbus-server",
    "description": "Agama web API description",
    "license": {
      "name": ""
    },
    "version": "0.1.0"
  },
...

Additionally, it adds a new agama-web-server package to the RPM spec file.

To do

  • Improve logging/tracing.
  • Expose the API documentation (openAPI?).

Out of scope

  • Better error handling.
  • Read the D-Bus address from /run/agama/bus. We should do pretty much the same for agama-cli.
  • Improve events format.

Testing

  • Added a new Rus integration test
  • Tested manually

@coveralls
Copy link

coveralls commented Feb 15, 2024

Coverage Status

coverage: 73.938% (-0.09%) from 74.031%
when pulling 6020c5d on http-server
into be9bb78 on master.

Copy link
Contributor

@teclator teclator left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@imobachgs imobachgs merged commit 0a2e7b6 into master Feb 16, 2024
1 check passed
@imobachgs imobachgs deleted the http-server branch February 16, 2024 07:37
@imobachgs imobachgs restored the http-server branch February 20, 2024 09:56
@imobachgs imobachgs deleted the http-server branch April 22, 2024 06:10
@imobachgs imobachgs mentioned this pull request May 17, 2024
imobachgs added a commit that referenced this pull request May 17, 2024
Prepare for releasing Agama 8. It includes the following pull requests:

* #884
* #886
* #914
* #918
* #956
* #957
* #958
* #959
* #960
* #961
* #962
* #963
* #964
* #965
* #966
* #969
* #970
* #976
* #977
* #978
* #979
* #980
* #981
* #983
* #984
* #985
* #986
* #988
* #991
* #992
* #995
* #996
* #997
* #999
* #1003
* #1004
* #1006
* #1007
* #1008
* #1009
* #1010
* #1011
* #1012
* #1014
* #1015
* #1016
* #1017
* #1020
* #1022
* #1023
* #1024
* #1025
* #1027
* #1028
* #1029
* #1030
* #1031
* #1032
* #1033
* #1034
* #1035
* #1036
* #1038
* #1039
* #1041
* #1042
* #1043
* #1045
* #1046
* #1047
* #1048
* #1052
* #1054
* #1056
* #1057
* #1060
* #1061
* #1062
* #1063
* #1064
* #1066
* #1067
* #1068
* #1069
* #1071
* #1072
* #1073
* #1074
* #1075
* #1079
* #1080
* #1081
* #1082
* #1085
* #1086
* #1087
* #1088
* #1089
* #1090
* #1091
* #1092
* #1093
* #1094
* #1095
* #1096
* #1097
* #1098
* #1099
* #1100
* #1102
* #1103
* #1104
* #1105
* #1106
* #1109
* #1110
* #1111
* #1112
* #1114
* #1116
* #1117
* #1118
* #1119
* #1120
* #1121
* #1122
* #1123
* #1125
* #1126
* #1127
* #1128
* #1129
* #1130
* #1131
* #1132
* #1133
* #1134
* #1135
* #1136
* #1138
* #1139
* #1140
* #1141
* #1142
* #1143
* #1144
* #1145
* #1146
* #1147
* #1148
* #1149
* #1151
* #1152
* #1153
* #1154
* #1155
* #1156
* #1157
* #1158
* #1160
* #1161
* #1162
* #1163
* #1164
* #1165
* #1166
* #1167
* #1168
* #1169
* #1170
* #1171
* #1172
* #1173
* #1174
* #1175
* #1177
* #1178
* #1180
* #1181
* #1182
* #1183
* #1184
* #1185
* #1187
* #1188
* #1189
* #1190
* #1191
* #1192
* #1193
* #1194
* #1195
* #1196
* #1198
* #1199
* #1200
* #1201
* #1203
* #1204
* #1205
* #1206
* #1207
* #1208
* #1209
* #1210
* #1211
* #1212
* #1213
* #1214
* #1215
* #1216
* #1217
* #1219
* #1220
* #1221
* #1222
* #1223
* #1224
* #1225
* #1226
* #1227
* #1229
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants