storj/satellite/admin/ui
Egon Elbre 1f1f777d06 satellite/admin/ui,web/{multinode,storagenode}: build without embedding
Embedded files significantly increase the binary size for linking.
Add a tag that allows disabling embedding the build npm code.

Change-Id: I9d1fd7376d1fa035965c33d259faaa6c4770dfe1
2022-03-29 13:18:04 +03:00
..
build satellite/admin/ui: avoid needing an additional copy 2022-03-25 11:42:22 +02:00
src satellite/admin: add endpoints for oauth clients 2022-02-02 09:47:52 -06:00
static satellite/admin/ui: avoid needing an additional copy 2022-03-25 11:42:22 +02:00
.eslintrc.cjs satellite/admin/ui: Migrate to SvelteKit 2021-12-17 10:27:13 +00:00
.gitignore satellite/admin/ui: avoid needing an additional copy 2022-03-25 11:42:22 +02:00
.prettierrc satellite/admin/ui: Migrate to SvelteKit 2021-12-17 10:27:13 +00:00
assets_noembed.go satellite/admin/ui,web/{multinode,storagenode}: build without embedding 2022-03-29 13:18:04 +03:00
assets.go satellite/admin/ui,web/{multinode,storagenode}: build without embedding 2022-03-29 13:18:04 +03:00
package-lock.json satellite/admin/ui: Migrate to SvelteKit 2021-12-17 10:27:13 +00:00
package.json satellite/admin/ui: Migrate to SvelteKit 2021-12-17 10:27:13 +00:00
README.md satellite/admin/ui: avoid needing an additional copy 2022-03-25 11:42:22 +02:00
svelte.config.js satellite/admin/ui: Migrate to SvelteKit 2021-12-17 10:27:13 +00:00
tsconfig.json satellite/admin/ui: Migrate to SvelteKit 2021-12-17 10:27:13 +00:00

Admin UI

Implementation details

This is a project based on the Sveltekit.

The project is set up with Typescript.

The Web App is currently straightforward as we specified that v1 would be.

The v1 is just a simple web page that exposes the Admin API through some forms and allow to a call the API without needing to use some HTTP REST clients (e.g. Postman, cURL, etc.). It doesn't offer any user authentication; the user has to know the API authorization token for using it.

The UI has a set of Svelte components that collaborate together to render an HTML form with input elements from the Admin API client. The Svelte components expect some values of a certain Typescript interfaces, types, and classes, for being able to dynamically render the HTML form and elements.

Each source has a brief doc comment about its functionality.

Development

Install the dependencies...

npm install

...then run the development server with autoreload on changes

npm run dev

Navigate to localhost:3000. You should see your app running.

Building for production mode

To create an optimized version of the app:

npm run build