Comments (5)
Having to do all the boilerplate you list is a problem. But I see a better solution from what you propose.
I think client libraries should call "crud.x" directly, without any wrappers. For this to work, the crud module should register itself in a global variable with the same name as the module name when first loaded. Then it will be possible to call "crud.x" directly.
from crud.
This issue may be closed, all changes are implemented.
from crud.
@knazarov I will accept either of these solutions, but exposing the whole module seems to be less safe than a list of proxy functions.
from crud.
@akudiyar exposing the crud
functions as a global variable is not enough for the client to be able to call them. The client should still have permissions to call those functions. And those permissions must either be explicitly granted, or the user should have execute permission on the universe
.
If you need granular access control, this is not something I will expose through the data access API. Instead, I propose to add full RBAC to the enterprise edition of this module. The data access API itself should not care whether you have RBAC or not. It should be an implementation detail.
Of course, users are free to roll out their own access control if they want to. For this, they would need to wrap functions as you propose.
from crud.
@akudiyar Is there anything else on the topic you want to be implemented aside of PR #58 (released in crud 0.3.0)?
from crud.
Related Issues (20)
- test: switch master with vshard
- Run perf tests on demand
- Borders fails to process bad fields
- operation_data usability
- Update operation convert is broken for splice HOT 2
- Replace/insert errors `operation_data` should always contain tuple that was not inserted
- [BUG] Calling `crud.get` causes a bunch of `fiber leak` errors HOT 1
- crud doesn't build key from conditions HOT 1
- Support vshard's `identification_mode` = `name_as_key` HOT 2
- Сan't initialize storage/router if no UUIDs
- support vshard `master: auto` HOT 1
- `box.info.ro` can be true in `init_storage()` on all instances in replicaset HOT 1
- It seems that crud is doing two selects in one `crud.get` HOT 3
- Add a role for tarantool 3.0 HOT 1
- After upgrade CRUD from 0.10.0 to 1.4.2 we got errors for different operations for old spaces. HOT 15
- Проблема с crud.count HOT 3
- Consider reworking batch operations info HOT 2
- Handle 'wrong symbol )' exception in case of comparision field with nil or {} on nonindexed column
- Bad error handling
- Vshard cluster does not start in tests
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 crud.