Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fumito-ito/privacymanifest
PrivacyManifest is the pkl file that provides the benefits of static typing to generate Apple's xcprivacy file.
https://github.com/fumito-ito/privacymanifest
ios pkl-lang
Last synced: 29 days ago
JSON representation
PrivacyManifest is the pkl file that provides the benefits of static typing to generate Apple's xcprivacy file.
- Host: GitHub
- URL: https://github.com/fumito-ito/privacymanifest
- Owner: fumito-ito
- License: apache-2.0
- Created: 2024-02-26T12:59:00.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-21T04:48:02.000Z (10 months ago)
- Last Synced: 2024-10-16T06:19:02.675Z (3 months ago)
- Topics: ios, pkl-lang
- Homepage:
- Size: 28.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PrivacyManifest
PrivacyManifest is the pkl file that provides the benefits of static typing to generate [Apple's xcprivacy file](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests).
## Installation
Packages within this repository are published as `package://pkg.pkl-lang.org/github.com/fumito-ito/PrivacyManifest@`.
### Direct imports
Modules from package can be imported directly. For example, the below line imports the module from package at version `0.1.0`:
```pkl
import "package://pkg.pkl-lang.org/github.com/fumito-ito/PrivacyManifest/[email protected]"
```## Usage
create your pkl file to generate `xcprivacy` file.
```pkl
amends "package://pkg.pkl-lang.org/github.com/fumito-ito/PrivacyManifest/[email protected]#/PrivacyManifestFile.pkl"NSPrivacyTracking = true
NSPrivacyTrackingDomains {
"com.github.fumito-ito.PrivacyManifest.pkl"
}
```... and generate !
```sh
$ pkl eval YourPklFile.pkl > PrivacyInfo.xcprivacy
```## Validation
This module provides following validations.
### Number of NSPrivacyTrackingDomains
If `NSPrivacyTracking = true`, `NSPrivacyTrackingDomains` needs one or more domains.
### Domain style
`NSPrivacyTrackingDomains` should be domain style string, e.g. `com.example.app`
### Combination of `NSPrivacyAccessedAPIType` and `NSPrivacyAccessedAPITypeReasons`
`NSPrivacyAccessedAPITypeReasons` should supply the relevant values from `NSPrivacyAccessedAPIType`.
### Name checking
Check that the correct names are used for the classes listed below.
- `NSPrivacyAccessedAPIType`
- `NSPrivacyAccessedAPITypeReasons`
- `NSPrivacyCollectedDataType`
- `NSPrivacyCollectedDataTypePurposes`## Dependencies
[Pkl 0.25.2](https://github.com/apple/pkl)
## Contributing
Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change.Please make sure to update tests as appropriate.
## License
[Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)