You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/gsoc/2025/udhay_adithya_j.md
+20-8Lines changed: 20 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# GSoC'25 — API Dash: Authentication, Scripting, OAuth, and Dashbot
1
+
# GSoC'25 — API Dash: Dashbot and API Authentication
2
2
3
3
> Final report summarizing my contributions to API Dash as part of GSoC'25.
4
4
@@ -110,7 +110,7 @@ On the Dart side I wrote `executePreRequestScript` and `executePostResponseScrip
110
110
111
111
Here is a short example that shows how a pre‑request script can set a header and a query parameter from environment values.
112
112
113
-
```
113
+
```dart
114
114
// user script (runs after kJSSetupScript)
115
115
const token = ad.environment.get('API_TOKEN');
116
116
if (token) {
@@ -150,7 +150,7 @@ I implemented the three common grant types: Authorization Code, Client Credentia
150
150
151
151
Here is a short excerpt that shows how the Authorization Code grant adds the access token to the request after the flow completes. The handler appends `Authorization: Bearer <token>` to your request headers so you can send the request right away.
// ... run the selected grant flow and get the client
@@ -254,7 +254,7 @@ While building scripting and Dashbot, I realized users need a clear place to see
254
254
255
255
On the JavaScript side, the `ad.console` helper in the setup script forwards logs back to Dart using a small bridge. The calls below are part of `kJSSetupScript` in `lib/utils/js_utils.dart` and they send messages for info, warning, and error.
On the Dart side, I wired the JS bridge to receive these messages. The handler currently prints them and includes a note to route them into the in‑app terminal UI. This is in `lib/services/flutter_js_service.dart`.
273
273
274
-
```
274
+
```dart
275
275
// lib/services/flutter_js_service.dart
276
276
// TODO: These log statements can be printed in a custom api dash terminal.
277
277
void setupJsBridge() {
@@ -292,6 +292,18 @@ void setupJsBridge() {
292
292
293
293
This design keeps the scripting API simple for users. You can call `ad.console.log(...)`, `ad.console.warn(...)`, or `ad.console.error(...)` in scripts and then open the Logs tab to see what happened, including any fatal errors with their stack traces from the JS engine. Internally, logs are captured centrally so the UI can show them in order, highlight severity, and allow quick filtering or clearing. This has already helped me and early users debug scripts and understand OAuth/token flows faster.
@@ -387,6 +399,6 @@ This experience has been far more than just writing code—it's been a journey o
387
399
388
400
Coming from a background of working solo on personal projects, this opportunity also introduced me to the invaluable experience of teamwork and collaboration. I learned the art of patience when waiting for code reviews, the importance of clear communication when discussing technical decisions, and how to work effectively with mentors and the broader community. These soft skills—teamwork, patience, and communication—have been just as transformative as the technical knowledge I gained. This is truly what made me a better person overall, not just a better developer.
389
401
390
-
I'm truly grateful for getting this incredible opportunity to contribute to such an amazing project. Most of all, I want to extend my heartfelt thanks to my wonderful, amazing and caring, mentors—Ashita P, Ankit M, and Ragul Raj M. Your guidance, patience, and support made this entire journey possible. You created an environment where I could learn, experiment, fail, and succeed, all while feeling supported every step of the way.
402
+
I'm truly grateful for getting this incredible opportunity to contribute to such an amazing project. Most of all, I want to extend my heartfelt thanks to my wonderful, amazing and caring, mentors—Ashita P, Ankit M, and Ragul Raj M. Your guidance, patience, and support made this entire journey possible. You created an environment where I could learn, experiment, fail, and succeed, all while feeling supported every step of the way.
391
403
392
404
Looking ahead, I'm excited to see how future contributors will build upon this foundation and take API Dash to new heights.
0 commit comments