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

Trio specific App Group #313

Closed
dnzxy opened this issue Jun 16, 2024 · 0 comments · Fixed by #314
Closed

Trio specific App Group #313

dnzxy opened this issue Jun 16, 2024 · 0 comments · Fixed by #314
Assignees
Labels
enhancement New feature or request Pre 1.0

Comments

@dnzxy
Copy link
Contributor

dnzxy commented Jun 16, 2024

Is your feature request related to a problem? Please describe.

Currently, Trio uses the same shared app group as Loop, iAPS, and xDrip4iOS. This creates a shared storage container with two other OS-AID applications. This comes with drawbacks:

  • Potential "zombie" data from other apps due to shared app group read/write permissions.
  • Risk of data corruption or conflicts when multiple apps share the same app group.

Describe the solution you'd like

Change the build scheme and project setup so that Trio has its own, Trio-specific app group and creates its own isolated shared container. Why?

  • To prevent unintentional data sharing and ensure data integrity, it's crucial to isolate app data by using unique app groups.
  • This approach was previously adopted in updating LoopCaregiver to have its own app group, preventing data conflicts with Loop.
  • Support for this strategy is seen in plans for xDrip4iOS, emphasizing intentional incorporation of shared access rather than unintentional data sharing.

Additional context

Benefits we see are, among others:

  • Enhanced data integrity and security.
  • Clear separation of app data, reducing the risk of conflicts.

This establishes a standard for app development within the DIY T1D ecosystem, promoting better integration and reliability.

Technical Details

Adopt a Trio-specific APP_GROUP_ID identifier in the build settings of the scheme. Remove APP_GROUP_ID from xcconfig.

@dnzxy dnzxy added enhancement New feature or request Pre 1.0 labels Jun 16, 2024
@dnzxy dnzxy self-assigned this Jun 16, 2024
@bjornoleh bjornoleh linked a pull request Jun 16, 2024 that will close this issue
paulplant added a commit to paulplant/xdripswift that referenced this issue Jun 28, 2024
Renames (in the UI only) "Loop Share" to "OS-AID Share"

Also creates an additional shared app group for Trio to help with this Issue: nightscout/Trio#313

group.org.nightscout.${DEVELOPMENT_TEAM}.trio.trio-app-group

In Developer Settings, instead of "Suppress Loop Share", the user can now chose to disable share or choose to set it to the usual "LoopKit" app group, or the new "Trio" app group.

All other userdefault data is always stored in the usual LoopKit app group.

The share types are handled by a new LoopShareType enum that manages the UI strings and app group suite names in an opaque way to the rest of the app. It makes it easy to add further examples as required with no further changes to the app itself.
paulplant added a commit to paulplant/xdripswift that referenced this issue Jun 28, 2024
Renames (in the UI only) "Loop Share" to "OS-AID Share"

Also creates an additional shared app group for Trio to help with this Issue: nightscout/Trio#313

group.org.nightscout.${DEVELOPMENT_TEAM}.trio.trio-app-group

In Developer Settings, instead of "Suppress Loop Share", the user can now chose to disable share or choose to set it to the usual "LoopKit" app group, or the new "Trio" app group.

All other userdefault data is always stored in the usual LoopKit app group.

The share types are handled by a new LoopShareType enum that manages the UI strings and app group suite names in an opaque way to the rest of the app. It makes it easy to add further examples as required with no further changes to the app itself.
mountrcg pushed a commit to mountrcg/Trio that referenced this issue Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Pre 1.0
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant