Create absolute minimal HTTP API on top of Abra #5

Open
opened 2024-03-22 10:25:48 +00:00 by basebuilder · 0 comments
Collaborator

Perhaps the biggest glue area of new Go code which needs to be written is a HTTP API which a web interface can use to control the abra tool. For starters just a subset of the functionality is probably all that's required. The initial use-case, which is just installing parasol on a single server and using that to deploy multiple static-sites on that server.

The following are direct commands which would be needed :

server

  • Add server abra server add <server-domain>
  • Remove server abra server remove <server-domain>

app

  • List all apps / sites abra app list
  • Add app (site) with abra app new parasol-static-site
  • Configure app abra app config <static-website>
  • For writing keys abra app secret <static-website>
  • Remove app abra app remove <static-website>
  • Restart app abra app restart <static-website>
  • Check app abra app check <static-website>
  • Show app logs of build status abra app log <static-website>
  • Show errors of app abra app errors <static-website>

Outstanding Questions

  • Do we do a 1-to-1 mapping of CLI commands to API endpoints? This could be done with some clever programming, but it would likely stray from the Parasol use-case of just deploying and admining static-sites. While it would pave way for more robust Co-op Cloud Web UI for deploying all recipes intuitively 🤔

  • Assuming our initial use-case, perhaps listing servers with abra server list is not needed?

  • Perhaps this should be a Desktop App 🤯 muahhahah

Perhaps the biggest *glue* area of new Go code which needs to be written is a HTTP API which a web interface can use to control the `abra` tool. For starters just a subset of the functionality is probably all that's required. The initial use-case, which is just installing `parasol` on a single server and using that to deploy multiple static-sites on that server. The following are direct commands which would be needed : **server** - [ ] Add server `abra server add <server-domain>` - [ ] Remove server `abra server remove <server-domain>` **app** - [ ] List all apps / sites `abra app list` - [ ] Add app (site) with `abra app new parasol-static-site` - [ ] Configure app `abra app config <static-website>` - [ ] For writing keys `abra app secret <static-website>` - [ ] Remove app `abra app remove <static-website>` - [ ] Restart app `abra app restart <static-website>` - [ ] Check app `abra app check <static-website>` - [ ] Show app logs of build status `abra app log <static-website>` - [ ] Show errors of app `abra app errors <static-website>` Outstanding Questions ❓ - Do we do a 1-to-1 mapping of CLI commands to API endpoints? This could be done with some clever programming, but it would likely stray from the *Parasol* use-case of just deploying and admining static-sites. While it would pave way for more robust *Co-op Cloud* Web UI for deploying all recipes intuitively 🤔 - Assuming our initial use-case, perhaps listing servers with `abra server list` is not needed? - Perhaps this should be a *Desktop App* 🤯 muahhahah
basebuilder added this to the Additional Devops Glue milestone 2024-03-22 10:25:48 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: toolshed/parasol#5
No description provided.