-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extend DandiInstance
to support APIs outside of dandiarchive.org
subdomains
#1517
Comments
DandiInstance
to support APIs not in dandiarchive.org
subdomainsDandiInstance
to support APIs outside of dandiarchive.org
subdomains
Additional aspect on user level visible interface/configuration:
or
|
generally speaking yes. although one could release a linc cli that effectively is a very lightweight wrapper around dandi cli, changing some configs. i think dandi has become quite synonymous with the neurophysiology repository, and it may take some work to turn it into a more general framework. however, i would be keen to do so, if possible. technically as you raise, naming things like api keys and instances would require some thought and cli awareness. |
@satra Could you provide some base case abstractions you'd like to accomplish here? |
@yarikoptic I think the idea of inferring the API via reading from the dandiset metadata serves as the lowest cognitive overhead for the end user -- as far as routing the @satra @yarikoptic my hesitancy of You could say -- "ok, users can also bring their own dandischema-ish library" too -- thus all data uploaded to their buckets would have uniformity -- however, abstraction at this time and level seems arduous without user research |
i'm not sure what this means, but the process of uploading is the same for all instances (the data models are the same - to speak to the next comment). so the abstractions are really about where to send and do you have authorization to send there. i don't think native cloud vendor CLIs (e.g. aws CLI) work for our use cases for various reasons (e.g. we need data model checks, we need validation, and we need to support for objects like zarr). also we don't expect our work to be completely general purpose. the focus would still be neuroscience domain for now, with the scope of the data model being modifiable. also our backend datamodel is relatively simple (blob/container blob + jsonld metadata), and intentionally different from the metadata models for dandiset/asset. |
@satra sounds good to me -- I do want to note the frequent usage of
|
Thanks team. Echoing the points above. For the use case of the LINC project, I think that the following behavior would be straightforward from the user perspective.
Since @aaronkanzer Your proposal on how to implement this feature sounds right (quoted below). Would you be able to submit a pull request for this work?
|
it is and it isn't. since dandischema supports the lightsheet + mri datasets on DANDI proper, it should also be fine for validating linc datasets. essentially any bids dataset should be supported by the DANDI schema and should upload without skip validation. if that's not the case, something is off and should highlight a reconciliation. |
We will also have to update the DANDI and LINC docs. A few examples are below.
|
|
Hi @aaronkanzer, I may have missed it but I didn't notice these calls in the diff pull request (lincbrain#63). We only added |
@yarikoptic @jwodder -- wanted to start a GitHub Issue to get consolidation of
linc-cli
https://github.com/lincbrain/linc-cli back todandi-cli
-- working with @satra @kabilar here to merge LINC work back into DANDI as Ember approachesPrior to coding a potential solution, wanted to get your thoughts. The only 2 differences that exist between
dandi-cli
andlinc-cli
are:•
client.dandi_authenticate()
is called upon every command inlinc-cli
due to the locked-down nature of LINC assets for now• LINC has an API Key called
LINCBRAIN_API_KEY
There are no other differences, other than the API that is hit of course (
api.lincbrain.org/.....
)My proposal here would be to:
DandiInstance
object offerings to includeLINC
inconsts.py
-- code referenceis_private_archive
boolean to theDandiInstance
-- code reference. This bool value would be used to decide upon what commands indandi-cli
would requireclient.dandi_authenticate()
--api-key
flag that could be passed in the CLI commands to handle the API key for any extending instance (would go against thekeyring
pattern a bit, so curious to get your thoughts especially here)Let me know -- I'll default to some of your wisdom here as you've authored most of the CLI tool
Cc @waxlamp -- tagging for visibility for Kitware folks
The text was updated successfully, but these errors were encountered: