An implementation of the Simple Spectral Access Protocol and of the Simple Image Access of the IVOA. The server is a Spring Boot application that implements the APIs defined in the standard. SSA and SIA can be enabled independently.
SSA requests can either be redirected to a TAP service or go directly to the DB.
In this mode the server translates the incoming SSA requests into ADQL and sends them to a TAP service. The tool assumes a specific schema is available on the TAP server. Unfortunately it is not possible to query directly ObsCore, because the UCDs are different and some columns are missing. Therefore we defined a view that can be built on top of ObsCore to enable SSA access. You can find an example definition of this view for SQLServer here.
SSA leaves some freedom in the implementation of specific parameters, and some of them can be specific to the data or to the
model that the server is exposing. It is therefore possible to customize how a given parameter is converted in a TAP query.
Every parameter defined in the SSA standard is handled by a class that implements the interface
If, for example, you want to override the default TIME implementation, it is sufficient to declare a class named
MyTimeHandler, that implements ParameterHandler. You can find an example in the tests.
Direct DB queries
SIA requests are converted to ObsTAP queries.
Run the server
./gradlew bootRun -Pargs="--ssap.tap.url=http://<host>:<port>/yourtap --sia.tap.url=http://<host>:<port>/yourtap"
in the project root directory: the server will start at
in the project root directory, a standalone jar file will be created under
build/libs/SSAPServer-<version>.jar. You can run it like this:
java -jar SSAPServer-<version>.jar --ssap.tap.url=http://<host>:<port>/yourtap --sia.tap.url=http://<host>:<port>/yourtap
Note: the first build might take a few minutes, because the script is going to download gradle and all dependencies. The next builds will be faster