{"id":13565593,"url":"https://github.com/fission/fission-ui","last_synced_at":"2025-04-03T22:31:47.794Z","repository":{"id":88267613,"uuid":"83018358","full_name":"fission/fission-ui","owner":"fission","description":"Fission web interface","archived":true,"fork":false,"pushed_at":"2019-09-27T16:47:46.000Z","size":796,"stargazers_count":62,"open_issues_count":9,"forks_count":16,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-11-04T19:41:56.285Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fission.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-02-24T08:18:04.000Z","updated_at":"2024-10-02T13:46:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"079398db-e8a7-4eef-9ea2-6c4429f11b29","html_url":"https://github.com/fission/fission-ui","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fission%2Ffission-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fission%2Ffission-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fission%2Ffission-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fission%2Ffission-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fission","download_url":"https://codeload.github.com/fission/fission-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247090290,"owners_count":20881943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:01:50.813Z","updated_at":"2025-04-03T22:31:46.692Z","avatar_url":"https://github.com/fission.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Important Announcement\n\nThis repository is no longer under development nor maintenance. \n\nIf you're interested in contributing/maintaining Fission-UI project, feel free to ping us on fission Slack.\n\n---\n\n# Fission UI [![Build Status](https://travis-ci.org/fission/fission-ui.svg?branch=master)](https://travis-ci.org/fission/fission-ui)\n\nFission-ui is a web-based UI for [fission](https://github.com/fission/fission).\nIt allows users to observe and manage fission, \nproviding a simple online development environment for serverless functions powered by fission.\n\n## Features\n- The UI service can be deployed with fission in k8s easily\n- A dashboard overview of all functions and triggers related\n- Test and see the response of the function right from the editor\n- A draft mode let you test the function in your editor without affecting the online version\n- Multi-language support\n\n## Running fission-ui\n\n### Deploy Fission-ui with other fission services\nAfter deploying fission services, create a fission-ui service and deployment:\n```\n$ kubectl create -f docker/fission-ui.yaml\n```\nYou can then access the ui via `node_ip:31319` or the load balancer.\n\nIn `fission-ui.yaml`, we simply define a deployment and a service map node port 31319 to 80\nport of the pods labeled `srv:fission-ui`. The pod of the deployment is a Nginx which hosts the\nstatic files of the ui and proxy `/proxy` to fission controller/router. The deployment can be\nscaled horizontally.\n\n### Manage fission environments\n- Create environments by providing name, docker image or by selecting a sample\n- Modify docker image of a environment\n- Delete a specified environment (currently no check on the functions depends on it)\n\n### Observe function status\nThe function list will explain the name, env, triggers of each function. You can jump to edit the\nenv, triggers of the function easily. When you delete a function with triggers related, fission-ui\nwill ask if you want to delete the related triggers, and those triggers will be deleted with the\nfunction by default.\n\n### Create a new function\nBy clicking on the `Add` button of the function list, you need to provide the name, env and code.\nThe function is not created until you click on `Deploy` button and no error occurs.\nAfter that, you will be redirected to the edit page of the function.\n\n### Upload functions in batch\nBy clicking on the `Batch Upload` button, you can create/update multiple functions from local files.\n\n- You need to create a mapping from file extension to fission environment.\nThis helps fission-ui to extract name, environment and code from selected local files\n- Choose or drag \u0026 drop the function files you want to upload\n- Select the upload mode to create or update. If you attempt to create an existed function, fission will return\nan error\n- Click on `Upload` and the functions will be uploaded one by one.\n\n### Edit a function\nThe name and environment of a created function cannot be modified. So only the code of a function can be updated.\n\n### Deploy a function\nBy clicking on the `Deploy` button, you are saving the code in your online editor to fission. \nIf you invoke the function, the latest version of the function will be loaded after few seconds.\n\n### Test a function through http trigger\nWe can only test a function manually through http triggers. Other events are not manually invokable now.\nThere are two modes: the main and draft mode. \n\nThe draft mode is the default. Once you click on `Test`, the code in your editor will be used to an temp function,\nand the http request you submit will be passed to the temp function once it is ready (in about 3 seconds according to\nfission sync interval). Once fission-ui receives it's response, the temp function will be deleted. So there are no env \nreuse for the draft mode. It means every time a draft test is fired, you have to wait for the function creation,\nenv specialization, request and response, function deletion. But the draft function will not affect the function and all\nthe traffic to the original function is safe.\n\nThe main mode is easier. It simply passes you request to the latest version of the function and get the response. It is \nfast because of env reuse.\n\n### Manage all kinds of triggers related to functions\n\nFunctions in fission are event-driven. A function is invoked if a related trigger emits event.\nYou can manage the triggers related to a function in the trigger tab.\nCurrently http triggers and kube watchers only. Timer, custom-application trigger is expected.\n\n#### Http Triggers\nIn fission, a function is given a http trigger by default, which is `/fission-function/${function-name}`.\nIt invokes the latest version of the function.\nFission-ui uses the default for testing. Defining a http trigger by yourself is better by providing path(url pattern)\nand the http method.\n\n#### Kube Watchers\nBy providing namespace, obj type and label selector, you can create a kube watcher trigger for a function.\n\n### More features to come\n\nFission-ui will update as fission evolves.\n- Observe and manage function logs, versions and statics\n- Control function runtime resources\n- Fission environment v2\n- Testing function through mocked all kinds of events\n- Better interface\n\n## Development\n\nFission-ui is created from [react-boilerplate](https://github.com/react-boilerplate/react-boilerplate).\nIt is a single page application and uses react, redux, react-saga.\nFission-ui is under rapid development like fission, so feel free to get the code and play with it.\n\n1. Clone this repo using `git clone https://github.com/fission/fission-ui`\n1. Run `yarn install` or `npm install` to install dependencies\n1. `export FISSION_ROUTER=$SERVER_IP:31313` and `export FISSION_CONTROLLER=$SERVER_IP:31314`\n1. For using k8s TPR endpoint, `export FISSION_k8S=$K8S_PROXY_IP:28001`\n1. Run `npm run start` to see the app at `http://localhost:3000`\n1. Run `npm run build` to build the application into the build folder\n1. Run `docker/push.sh $DOCKER_HUB_NAME $TAG` to build docker image and push to docker hub\n\n## License\n\nThe work done has been licensed under Apache License 2.0.\n\n## Status\nFission UI is in early alpha. It's not suitable for production use just yet.\n\n## Screenshots\n\nFunction List\n![Function List](/documentation/images/function-list.png?raw=true \"Function List\")\nFunction Edit\n![Function Edit](/documentation/images/function-edit.png?raw=true \"Function Edit\")\nFunction Triggers\n![Function Triggers](/documentation/images/function-triggers.png?raw=true \"Function Triggers\")\nBatch Upload\n![Batch Upload](/documentation/images/batch-upload.png?raw=true \"Batch Upload\")\nEnvironment List\n![Environment List](/documentation/images/environment-list.png?raw=true \"Environment List\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffission%2Ffission-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffission%2Ffission-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffission%2Ffission-ui/lists"}