Understanding Adapter Sandboxing
In case you are struggling to get adapter files in the right place to work with sandboxing, here are some notes I put together. And there is a typo in the doc that will definitely throw you off (we’ll get it corrected)
[Update: this post has been updated to note that the absolute path is required for discovery, but the relative path is required when running the project]
Background: sandboxing was added as a security feature several releases back (can’t remember which release specifically, but doesn’t matter at this point). With HANA SDS, sandboxing is not optional and cannot be turned off. The purpose of sandboxing is to limit adapter access to the file system.
The way it works is that adapters can only access files that are within the “sandbox” for that adapter – and can’t access any files outside the sandbox.
So for projects running on an SAP HANA SDS cluster, the adapter sandbox directory is this:
where <SID> = the HANA system ID, and <workspace> is the SDS cluster workspace where the project/adapter runs. So then the adapters for this project can only access files within this sandbox.
When configuring an adapter, set the “directory” property to indicate the path relative to the sandbox directory. (this is where the typo comes in – the doc says “absolute” when it should say relative.
But note a bit of messiness: for discovery to work, the directory property needs to have the absolute path! (sigh – we’ll see if we can get this fixed in a future release)
So, for example, if my HANA system ID is PM3, and I’m running a project in the default workspace and the project includes a File CSV Input adapter, then I can put the input files in:
and set the File CSV Input adapter directory property to csv_input/