Skip to content

samply/spot

Repository files navigation

Samply.Spot

This is the Rust re-implementation of Samply.Spot.

Local setup

Spot can be run locally with the provided docker-compose which requires a running beam installation. This can be done by cloning the beam repository and running ./dev/beamdev demo

Spot can also be run from command line stating command line parameters, like so:

cargo run -- --beam-proxy-url http://localhost:8081 --beam-app-id app1.proxy1.broker --beam-secret App1Secret --cors-origin any --bind-addr 127.0.0.1:8055 --catalogue-url https://raw.githubusercontent.com/samply/lens/main/packages/demo/public/catalogues/catalogue-dktk.json --target-app app1

The following environment variables are mandatory for the usage of Spot.

--beam-proxy-url <BEAM_PROXY_URL>
    URL of the Beam Proxy, e.g. https://proxy1.broker.samply.de [env: BEAM_PROXY_URL=]
--beam-app-id <BEAM_APP_ID>
    Beam AppId of this application, e.g. spot.proxy1.broker.samply.de [env: BEAM_APP_ID=]
--beam-secret <BEAM_SECRET>
    Credentials to use on the Beam Proxy [env: BEAM_SECRET=]
--cors-origin <CORS_ORIGIN>
   Where to allow cross-origin resourse sharing from [env: CORS_ORIGIN=]

Optional environment variables:

--project <PROJECT>
    Optional project name used by focus [env: PROJECT=]
--catalogue-url <CATALOGUE_URL>
    URL to catalogue.json file, if not stated, /catalogue endpoint is disabled [env: CATALOGUE_URL=]
--prism-url <PRISM_URL>
    URL to prism, if catalogue-url is not stated, this is never used [env: PRISM_URL=] [default: http://localhost:8066]
--bind-addr <BIND_ADDR>
    The socket address this server will bind to [env: BIND_ADDR=] [default: 0.0.0.0:8055]
--target-app <TARGET_APP>
    Target application name [env: TARGET_APP=] [default: focus]

API

/beam

The /beam endpoint provides the ability to communicate with the beam-broker through a locally hosted beam-proxy (See local setup).

POST

With a post to /beam you will create a new beam task. You need to send a payload with this structure:

{
    "id": "<a-uuid-to-later-identify-the-task>",
    "sites": [
        "list",
        "of",
        "available",
        "sites"
    ],
    "query": "The query which the receiving site should execute"
}

See the example call in our docs.

Success

When executing the query successfully, spot will return a 201 status code with the beam task id in the location header

HTTP/1.1 201 Created
Location: /beam/<some-uuid>
Content-Length: 0
Date: Mon, 15 Mai 2023 13:00:00 GMT

GET

The get endpoint takes a beam task id in the path.

curl http://localhost:8100/beam/<some-uuid>

See the example call

/catalogue

GET

curl http://localhost:8100/catalogue

Returns JSON catalogue of search criteria along with metadata fetched from Samply.Prism (see Prism's repository for a list of metadata fields).

License

This code is licensed under the Apache License 2.0. For details, please see LICENSE

About

very large teleskope

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8