enso/tools/simple-library-server
Hubert Plociniczak 8a60bc6dcd
Replace a custom logger with off the shelf implementation (#7559)
This change replaces Enso's custom logger with an existing, mostly off the shelf logging implementation. The change attempts to provide a 1:1 replacement for the existing solution while requiring only a minimal logic for the initialization.

Loggers are configured completely via `logging-server` section in `application.conf` HOCON file, all initial logback configuration has been removed. This opens up a lot of interesting opportunities because we can benefit from all the well maintained slf4j implementations without being to them in terms of functionality.

Most important differences have been outlined in `docs/infrastructure/logging.md`.

# Important Notes
Addresses:
- #7253
- #6739
2023-09-04 09:40:16 +00:00
..
main.js Apply unified prettier style to engine codebase (#3145) 2021-11-08 16:45:29 +01:00
package-lock.json Replace a custom logger with off the shelf implementation (#7559) 2023-09-04 09:40:16 +00:00
package.json Bump semver from 7.3.7 to 7.5.2 in /tools/simple-library-server (#7113) 2023-07-19 16:16:42 +03:00
README.md Libraries Repository (#1804) 2021-06-22 13:35:15 +02:00

Simple Enso Library Server

A simple server for hosting custom Enso library repositories.

Usage

You need Node.JS to use this version of the server.

To install the dependencies, run npm install in the root directory of the application. Then you can run the main.js file to start the server. See ./main.js --help for available commandline options.

Repository structure

When launching the server, you need to provide it with a directory that is the root of the server. This directory should contain a libraries directory or editions directory (or both). Each of them should have the directory structure as described in the Enso documentation.

For example, the root directory may look like this:

root
├── libraries
│   ├── Foo
│   │   └── Bar
│   │       ├── 1.2.3
│   │       │   ├── meta
│   │       │   │   ├── preview.png
│   │       │   │   └── icon.png
│   │       │   ├── main.tgz
│   │       │   ├── tests.tgz
│   │       │   ├── LICENSE.md
│   │       │   ├── package.yaml
│   │       │   └── manifest.yaml
│   │       └── 1.2.4-SNAPSHOT.2021-06-24
│   │           └── ... # Truncated for clarity
│   └── Standard
│       ├── Base
│       │   └── 1.0.0
│       │       └── ...
│       └── Table
│           └── 1.0.0
│               └── ...
└── editions
    ├── manifest.yaml
    ├── 2021.1.yaml
    ├── foo.yaml
    └── bar.yaml

Then to add this repository as an edition provider you can append http://hostname:port/editions to the edition-providers field in global-config.yaml.

To use libraries from this repository, the editions should define the repository with URL http://hostname:port/libraries.