# ClusterCockpit with a Golang backend __*DOES NOT WORK WITH CURRENT FRONTEND*__ [![Build](https://github.com/ClusterCockpit/cc-jobarchive/actions/workflows/test.yml/badge.svg)](https://github.com/ClusterCockpit/cc-jobarchive/actions/workflows/test.yml) Create your job-archive accoring to [this specification](https://github.com/ClusterCockpit/cc-specifications). At least one cluster with a valid `cluster.json` file is required. Having no jobs in the job-archive at all is fine. You may use the sample job-archive available for download [in cc-docker/develop](https://github.com/ClusterCockpit/cc-docker/tree/develop). ### Run server ```sh # The frontend is a submodule, so use `--recursive` git clone --recursive git@github.com:ClusterCockpit/cc-jobarchive.git # Prepare frontend cd ./cc-jobarchive/frontend yarn install yarn build cd .. go get go build # The job-archive directory must be organised the same way as # as for the regular ClusterCockpit. ln -s ./var/job-archive # Create empty job.db (Will be initialized as SQLite3 database) touch ./var/job.db # This will first initialize the job.db database by traversing all # `meta.json` files in the job-archive. After that, a HTTP server on # the port 8080 will be running. The `--init-db` is only needed the first time. ./cc-jobarchive --init-db --add-user :admin: # Show other options: ./cc-jobarchive --help ``` ### Configuration A config file in the JSON format can be provided using `--config` to override the defaults. Look at the beginning of `server.go` for the defaults and consequently the format of the configuration file. ### Update GraphQL schema This project uses [gqlgen](https://github.com/99designs/gqlgen) for the GraphQL API. The schema can be found in `./graph/schema.graphqls`. After changing it, you need to run `go run github.com/99designs/gqlgen` which will update `graph/model`. In case new resolvers are needed, they will be inserted into `graph/schema.resolvers.go`, where you will need to implement them. ### TODO - [ ] Documentation - [ ] Write more TODOs - [ ] Caching - [ ] Generate JWTs based on the provided keys