Comments (13)
I started working on this a while back but stalled .. is the vault service on matgen8 still running? I can see the gui but can't seem to login via a github token, and I used to be able to
from maggma.
picking this up
from maggma.
shyamd [10:27 AM]
inherit from Mongo
MongoStore
and make a new init
that can grab all the credentials
mkhorton [10:30 AM]
and yes .. something like
class VaultMongoStore(MongoStore):
def __init__(vault_key='key_for_a_specific_credential'): # lookup credential from vault
super.__init__(...with vault credentials...)
from maggma.
@mkhorton - how does the user pass in vault config? Specifically, I need the
- vault_host
- vault_secret_path
- vault_token
I'm currently just defining these as args to init but it would be good to think about how this is configured.
from maggma.
We thought these might be environment variables or read in default locations? This is something where your insight in a balance of security/accessibility would be useful.
from maggma.
This hasn't been written yet, so however you think is best?
Personally I think the vault_token should be an env variable as @shyamd says, rather than a kwarg. Because kwarg arguments might get serialized somewhere. And probably makes sense to set the vault_host
as an env variable too, because we'll only have one vault host, so we can set it and forget it.
vault_secret_path
is probably what we want as the init arg to VaultMongoStore()
though
from maggma.
The point is that the secret paths aren't sensitive/shouldn't be treated as secrets themselves, since they are what we'll distribute to people to help them get connected, so using those as the input arg to VaultMongoStore
is fine (and helpful!).
from maggma.
OK - Mongostore also expects there to be a collection_name - would this be passed in as well?
from maggma.
That should probably be passed in with the secret path
from maggma.
+1
from maggma.
OK - See https://github.com/materialsproject/maggma/tree/issue_8_vault_store for a proposed implementation
I wanted to check if this is the approximate API you want. Not quite sure how to test though!
from maggma.
Also - Should this live in advanced_stores.py or stores.py?
from maggma.
I think advanced Stores is the appropriate spot for it.
from maggma.
Related Issues (20)
- Objects not returned from S3Store.query() HOT 3
- MemoryStore __eq__ does not behave as expected HOT 4
- `MontyStore` cannot be used with a pre-existing local DB HOT 4
- python 3.11 CI test failure with AzureBlobStore
- `database_name` of `MontyStore` doesn't seem to update the name HOT 2
- Scan for API keys on PR HOT 3
- Instantiating a `Store` from a dictionary representation HOT 3
- JSON representation for `MontyStore` cannot be decoded with `monty.json.MontyDecoder` HOT 3
- Feature Suggestions: Additional local data stores, e.g. `MongitaStore`, `FerretDB` HOT 3
- Enhancement: more performant MemoryStore HOT 4
- Enhancement: Locking mechanism for file-based stores HOT 3
- Removing the requirement to use a `task_id` HOT 5
- Would the maggma docs be a good place to host MongoDB setup instructions? HOT 2
- Support for Pydantic 2 HOT 2
- [Feature Request]: Is there a specific reason why pyzmq is fixed to 24.0.1 rather than supporting more recent versions ? HOT 3
- Update README/docs to better reflect the purpose of Maggma HOT 1
- `DeprecationWarning` associated with `pkg_resources`
- Drop python 3.8
- [Feature Request]: Leverage optional dependency groups to reduce dependency count HOT 10
- [Feature Request]: pass keyword arguments to zopen to accommodate non english platforms HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from maggma.