arraying / candor Goto Github PK
View Code? Open in Web Editor NEW๐ A mimimalistic containerized Continuous Integration ecosystem.
License: MIT License
๐ A mimimalistic containerized Continuous Integration ecosystem.
License: MIT License
When the dashboard starts using the Docker image, it performs migrations. These generate spammy NPM logs which are not desired and should be suppressed. If possible, it would be nice to maintain the migration log as migrations.log
in the log directory.
There should be the possibility to configure the payload when creating the container.
A JSON config should be provided that is then deep-merged with the configuration Candor creates.
It should be provided as a base64 encoded RUNNER_CONTAINER_CONFIG_B
environment variable.
This will allow resource limits, isolated networking, etc. and add great security benefit.
Currently, logs get overwritten in console by the CLI. Either make these logs persist, or write them to file.
The linter needs to be installed using the same rules as the runner.
Update the README. Stick to a short introduction, what Candor is/isn't, and some screenshots. Link to the wiki page for more information.
Currently, only the duration is shown. The time when the run was triggered should also be present.
Archives should be accessible from the dashboard.
Currently, the wiki has a quickstart. This should be split up into installation and configuration sections. At the end of the installation, there should be a reference to the configuration.
The installation section should also contain a security subsection, that covers:
There should be an environment variable that specifies how long each stage is permitted to run: RUNNER_CONTAINER_TIMEOUT
. The value should be in seconds.
When the timeout is reached, it will fail the stage and write to the log that the timeout has been exceeded. Then the next steps will, as usual, be skipped.
Runner should no longer have the hostname and domain saved, instead the base URL should be saved.
As such:
Currently ^C
does not terminate the process. This is probably because both Express and the CLI are listening and need to support proper exit handlers.
Automatic Docker image building:
main
, the dashboard and runner should be built, tagged with the short commit hash and published on Docker Hub.latest
. and published on Docker Hub.Restructure the project:
frontend/
and backend/
into dashboard/
.index.ts
for backend.The dashboard needs to be secure. The following endpoints need to be verified that they are hardened:
GET /api/pipelines
and GET /api/pipelines/:pid
must only expose relevant information.GET /api/pipelines/:pid/config
and POST /api/pipelines/:pid/config
must only be accessible to assignees.GET /api/runs/:pid/:rid/log
and GET /api/runs/:pid/:rid/archived
are accessible only if the pipeline is public or the requester is assigned.POST /trigger/:token
needs to be widely accessible.Furthermore, CORS and cookie include needs to be set:
mode
and cookies
in fetch
.Lastly:
Instead of JSON, the pipeline configuration should be YAML. Both formats are relatively interchangeable so this should not pose a problem. Internally, the config should still be stored as JSON, and the runner will also still receive JSON.
You should update the licence to 2023.
There need to be more tests, specifically:
Legal things need to be taken care of.
dependencies
and devDependencies
are correct.dependencies
and devDependencies
are correct.The examples need to be reworked slightly:
The CLI needs to be overhauled to see if it still meets standards. Specifically:
info
subcommands for runners, users and pipelines.pipeline run
.This consists of two components:
These changes should be made to aid with usability and not necessarily cosmetics. My eyes hurt at the moment.
Currently, Node.js 16 is used in the Docker image. This should be updated to 18, and the functionality should work in 18.
The dashboard should be thoroughly tested. This includes:
In the paths that use the build ID, accept last
as a valid ID that will always refer to the last build.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.