owned this note
owned this note
Published
Linked with GitHub
### User Authentication and Authorization
We do not have role-based access control. Instead, it's flexible: the owner of a database can assign users to groups.
#### Permissions
We have five types of permissions:
1. Create/insert
2. Read
3. Write/update
4. Delete
5. System
These permissions apply to:
* Owner - The entity that ceate the collection, document
* Group - Associated with the collection, document
* Others - Everyone else except the owner and group
#### Registration
* Email: Registration is done via email, where data is sent to the user's email. We do not store phone numbers.
* O-Auth: GitHub and Google
* User can also use their wallet to
### Query Tools
* No-SQL: We do not support SQL. Instead, we support searching by field in a No-SQL database.
* Searching and Filtering: You can choose a collection, and since the schema is predefined, you can search and filter by any field. Sorting and other query operations are supported.
**Should we support saving queries?**
### Change Ownership
* Ownership Transfer: Only the owner can transfer ownership, or anyone with system permission on the document or collection.
### Create Database with Merkle Height
* Merkle Height: The maximum height is 64, and the minimum height is 1.
### Group Management
* Assigning Permissions: You can assign permissions to a group.
* Deleting Groups: If a group is deleted, we need to consider the impact on users associated with that group.
**Can we delete the group? What happens next? How does it affect users?**
### Create Schema
* Schema Management: The schema will not be removed, but fields can be added through migration.
### zk Proof
* Verification: Users can verify proofs locally, but they cannot trigger proof generation. Proofs are generated upon receipt.
### Design of Explorer
* Operation Status: When operations are performed on the database, their status should be proved. It would be useful to display the proof status for each document and collection. For collections, a summary can be provided, including the time of proof creation and estimated completion time.
### Notifications and Alerts
* Uncertain Section: This section requires further clarification and planning.
**Should we support notifications and alerts? If so, what types of notifications and alerts should we provide?**
### Database Status and Statistics
We also need a section where the status of the database is displayed. This should include:
* Space Utilization: How much space each database occupies.
* Request Metrics: Number of requests made, types of requests, etc.
* Statistics and Monetization: Metrics useful for understanding usage patterns and monetizing the service.
### Document Management
* View Documents: Users can view documents within the collection.
* Document Details: Users can view detailed information about each document. In this details view, users with the appropriate permissions can:
* Remove Documents: Delete documents.
* Update Documents: Modify document contents.
### Collection Permissions
We should be able to check permissions for each collection. This is crucial for maintaining security:
* Permissions Check: Ensure that only authorized users can access, modify, or manage the collection.