spezistorage

Spezi module to store information and credentials encrypted at rest

https://github.com/stanfordspezi/spezistorage

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary

Keywords

encryption spezi stanford storage swift xcode

Keywords from Contributors

swiftui contact digital-health digitalhealth fhir
Last synced: 6 months ago · JSON representation ·

Repository

Spezi module to store information and credentials encrypted at rest

Basic Info
Statistics
  • Stars: 5
  • Watchers: 11
  • Forks: 0
  • Open Issues: 3
  • Releases: 25
Topics
encryption spezi stanford storage swift xcode
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

Spezi Storage

Build and Test codecov DOI

The Spezi Storage framework provides two Modules that enable on-disk storage of information. The LocalStorage module can be used to store information that does not need to be encrypted. Credentials, keys, and other sensitive information that needs to be encrypted may be stored by using the KeychainStorage module.

Setup

You need to add the Spezi Storage Swift package to your app in Xcode or Swift package.

[!IMPORTANT] If your application is not yet configured to use Spezi, follow the Spezi setup article to set up the core Spezi infrastructure.

You can configure the LocalStorage or KeychainStorage module in the SpeziAppDelegate.

[!IMPORTANT] If you use SpeziStorage on the macOS platform, ensure to add the Keychain Access Groups entitlement to the enclosing Xcode project via PROJECT_NAME > Signing&Capabilities > + Capability. The array of keychain groups can be left empty, only the base entitlement is required.

```swift import Spezi import SpeziLocalStorage import SpeziKeychainStorage

class ExampleDelegate: SpeziAppDelegate { override var configuration: Configuration { Configuration { LocalStorage() KeychainStorage() // ... } } } ```

You can then use the LocalStorage or KeychainStorage class in any SwiftUI view.

```swift struct ExampleStorageView: View { @Environment(LocalStorage.self) var localStorage @Environment(KeychainStorage.self) var keychainStorage

var body: some View {
    // ...
}

} ```

Alternatively, it is common to use the LocalStorage or KeychainStorage module in other modules as a dependency: Spezi Module dependencies.

Local Storage

The LocalStorage module enables the on-disk storage of data in mobile applications.

The LocalStorage module defaults to storing data encrypted supported by the KeychainStorage module. The LocalStorageKey type is used to define storage entries, and specify how data should be persisted.

Keychain Storage

The KeychainStorage module allows for the encrypted storage of small chunks of sensitive user data, such as usernames and passwords for internet services, or cryptographic keys, using Apple's Keychain documentation.

Credentials can be stored in the Secure Enclave (if available) or the Keychain. Credentials stored in the Keychain can be made synchronizable between different instances of user devices.

Handling Credentials

Use the KeychainStorage module to store a set of Credentials instances in the Keychain associated with a server that is synchronizable between different devices.

Handling Keys

Similar to Credentials instances, you can also use the KeychainStorage module to interact with cryptographic keys.

For more information, please refer to the API documentation.

The Spezi Template Application

The Spezi Template Application provides a great starting point and example using the Spezi Storage module.

Contributing

Contributions to this project are welcome. Please make sure to read the contribution guidelines and the contributor covenant code of conduct first.

License

This project is licensed under the MIT License. See Licenses for more information.

Spezi Footer Spezi Footer

Owner

  • Name: Stanford Spezi
  • Login: StanfordSpezi
  • Kind: organization

Citation (CITATION.cff)

#
# This source file is part of the Stanford Spezi open-source project
#
# SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
#
# SPDX-License-Identifier: MIT
# 

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Schmiedmayer"
  given-names: "Paul"
  orcid: "https://orcid.org/0000-0002-8607-9148"
- family-names: "Ravi"
  given-names: "Vishnu"
  orcid: "https://orcid.org/0000-0003-0359-1275"
- family-names: "Aalami"
  given-names: "Oliver"
  orcid: "https://orcid.org/0000-0002-7799-2429"
title: "SpeziStorage"
doi: 10.5281/zenodo.7804028
url: "https://github.com/StanfordSpezi/SpeziStorage"

GitHub Events

Total
  • Create event: 15
  • Issues event: 3
  • Release event: 6
  • Watch event: 1
  • Delete event: 8
  • Issue comment event: 16
  • Push event: 86
  • Pull request review comment event: 57
  • Pull request review event: 57
  • Pull request event: 18
  • Fork event: 1
Last Year
  • Create event: 15
  • Issues event: 3
  • Release event: 6
  • Watch event: 1
  • Delete event: 8
  • Issue comment event: 16
  • Push event: 86
  • Pull request review comment event: 57
  • Pull request review event: 57
  • Pull request event: 18
  • Fork event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 16
  • Total Committers: 3
  • Avg Commits per committer: 5.333
  • Development Distribution Score (DDS): 0.313
Past Year
  • Commits: 16
  • Committers: 3
  • Avg Commits per committer: 5.333
  • Development Distribution Score (DDS): 0.313
Top Committers
Name Email Commits
Paul Schmiedmayer P****r 11
Vishnu Ravi v****i@g****m 3
Andreas Bauer a****r@s****u 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 5
  • Total pull requests: 31
  • Average time to close issues: 4 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 3
  • Total pull request authors: 6
  • Average comments per issue: 0.6
  • Average comments per pull request: 1.55
  • Merged pull requests: 28
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 16
  • Average time to close issues: 2 days
  • Average time to close pull requests: 3 days
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.63
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • PSchmiedmayer (3)
  • lukaskollmer (1)
  • philippzagar (1)
Pull Request Authors
  • lukaskollmer (13)
  • Supereg (13)
  • PSchmiedmayer (5)
  • philippzagar (4)
  • pauljohanneskraft (2)
  • vishnuravi (2)
Top Labels
Issue Labels
good first issue (3) help wanted (3) enhancement (3) documentation (1) bug (1)
Pull Request Labels
enhancement (15) bug (3)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 25
swiftpackageindex.com: github.com/StanfordSpezi/SpeziStorage

Spezi module to store information and credentials encrypted at rest

  • Versions: 25
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Dependent repos count: 14.3%
Dependent packages count: 16.7%
Average: 37.9%
Forks count: 60.3%
Stargazers count: 60.4%
Last synced: 6 months ago

Dependencies

.github/workflows/build-and-test.yml actions
.github/workflows/monthly-markdown-link-check.yml actions
.github/workflows/pull_request.yml actions
Package.swift swiftpm