Skip to content
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

Applications / Contexts #311

Closed
12 of 13 tasks
datenangebot opened this issue May 23, 2023 · 11 comments
Closed
12 of 13 tasks

Applications / Contexts #311

datenangebot opened this issue May 23, 2023 · 11 comments
Assignees
Labels
1. to develop Accepted and waiting to be taken care of enhancement New feature or request
Milestone

Comments

@datenangebot
Copy link
Collaborator

datenangebot commented May 23, 2023

Lets create contexts where we can put different resources together to act like an small app (smapp 🙃).
Resources can be views, tables, a description (rich text with all the smart picker magic) and maybe other "related resources" from nextcloud, chat room, files directory, ...

Subtasks

Follow up

Summary

  • The user facing naming would be "Application" but code wise we use Context to avoid confusion with Nextcloud apps of all sorts

This is what we discussed in Berlin in person within the contributor week:
SCR-20231024-mgmf
SCR-20231024-mgno

@datenangebot datenangebot added enhancement New feature or request 1. to develop Accepted and waiting to be taken care of labels May 23, 2023
@juliushaertl
Copy link
Member

Unsorted further related input from the feature planning meeting for future discussions:

  • Look more from the user perspetive than tables developer (what to prioritize in the UI, how to present tables/views/contexts to the user)
    • For most users receiving shared views might be the most important
    • Possibly group them by their parent table/context
    • Wording of views
    • Possibly separate table design and usage more
    • Reusable definitions (table schema + views), import/export, sharable, maybe through the app store on the long term

@datenangebot datenangebot added this to the v0.8.0 milestone Sep 16, 2023
@juliushaertl
Copy link
Member

@datenangebot Can you provide a summary of what was discussed in Berlin and what the MVP would look like and need in terms of implementation as discussed?

@datenangebot
Copy link
Collaborator Author

Can you provide a summary of what was discussed in Berlin and what the MVP would look like and need in terms of implementation as discussed?

I updated the initial post here with some mockups.
@jancborchardt @nimishavijay did I got that right or do you have something to add?

@juliushaertl
Copy link
Member

From the discussion with @datenangebot

  • Q1: Contexts will be owned by a user in
    • Out of scope but planned for the future: Make a group the owner
  • Permission management
    • Q2: Each user with manage permission on a resource can add it to a context they create
      • The resource will show linked contexts
      • When the user looses manage permission, the context linking will still persist, listing them will give the resource owner control over who has access to data, but the manage permission is considered trusted to extend the base resource permissions to others through contexts
    • A context can be shared to users/groups
    • There is a set of default permissions that are applied to all share recipients for now
    • Out of scope: In the future we may extend this by addition individual acl/permissions per user/group share and resource
    • Sharing through multiple groups shall be merged to one receiving share

Frontend

  • Add separate section with "Applications" which is the user facing naming for "Contexts" to the sidebar
  • Each context can have a material design icon
    • see if a nice picker is available, hand picked list otherwise as first step for the app menu icons

Implementation

  1. Frontend: Refactor table component to be usable in multiple instances at the same time
  2. Backend: Implement database layout, API endpoints to create context
  3. Frontend: Implement sidebar entries, listing, new context button (partly requires 2 but could be started already)
  4. Frontend: Implement modal for creating/editing context (partly requires 2 but could be started already)
  5. Frontend: Implement vue routes to handle contexts (requires 1, requires 2 but could be started already)
  6. Backend: Expose contexts as app menu entries (partly requires 2)

@juliushaertl

This comment was marked as off-topic.

@juliushaertl

This comment was marked as off-topic.

@jancborchardt

This comment was marked as off-topic.

@juliushaertl

This comment was marked as off-topic.

@juliushaertl juliushaertl modified the milestones: v0.8.0, Upcoming Jan 19, 2024
@blizzz
Copy link
Member

blizzz commented Jan 23, 2024

Results of a few aspects that were discussed in today's call between @datenangebot, @juliushaertl and me:

  • Permissions/Access: defined more scenarios
    • since resources will stay available in Contexts even when the owner looses management permissions on tables, it must be transparent to the table owner in which Contexts their data is being used. In the sidebar information on a table it could be shown below the list of Views.
    • since Contexts are decoupled from tables permissions upon their embedding, tables cannot be withdrawn from Contexts, even by their table owners
      • this may change in the future with a holistic ACL concept.
  • Transparency and Acceptance User must have confidence and oversight
    • it must be clear to the users that handing out permissions on tables, they hand out the permission that those data may be shared, e.g. with Contexts. The consequences of sharing or giving permissions must be know so users are not experiencing surprise and may loose confidence in Nextcloud. Therefore, it must be clear already in the UI, not just the documentation.
  • User life cycle: behaviour on state changes
    • when deleting a user, all owned contexts are deleted, too. This is consistent with general Nextcloud behaviour, and existing Table behaviour on tables (and thus view).
    • when a user is disabled, everything stays intact, as is currently the case with tables and views
  • Transfer Ownership: to address user fluctuation, handing over Contexts will be possible
    • owner level: a user may transfer a Context to a different Context member. Ownership transfer already exists for tables, though it is not released yet.
    • admin level: through occ an admin may transfer a Context to another user. In this case it is not necessarily a Context member. (This may change in future).

@blizzz
Copy link
Member

blizzz commented Jan 30, 2024

Backend: Implement database layout, API endpoints to create context

DB draft at #812

@juliushaertl
Copy link
Member

Closing, we will track follow ups in separate issues.

@juliushaertl juliushaertl modified the milestones: v0.8.0, v0.7.0 Apr 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of enhancement New feature or request
Projects
Archived in project
Archived in project
Status: Todo
Development

No branches or pull requests

5 participants