@carboncollins/mobileconfig
Version:
Create and sign iOS mobileconfig configuration files
82 lines (59 loc) • 3.36 kB
Markdown
# mobileconfig
[](https://www.npmjs.com/package/@carboncollins/mobileconfig)
[](https://www.npmjs.com/package/@carboncollins/mobileconfig)
[](https://www.npmjs.com/package/@carboncollins/mobileconfig)
[](https://github.com/CarbonCollins/mobileconfig/blob/master/LICENSE)
[](https://nodesecurity.io/orgs/carboncollins/projects/731057ed-eef2-4bec-a0b8-64298d3a971b)
[](https://codeclimate.com/github/@carboncollins/mobileconfig/maintainability)
[](https://codeclimate.com/github/@carboncollins/mobileconfig/test_coverage)
[](https://travis-ci.org/@carboncollins/mobileconfig)
Create and sign iOS and mac *mobileconfig* configuration files.
This module has been bassed off of the previous work done by [andris9](https://github.com/andris9)/[mobileconfig](https://github.com/andris9/mobileconfig) and converted to be an ES6 module and use classes for creating profiles with multiple configuration payloads.
Currently this module supports adding the following payloads to a profile:
* ActiveDirectoryCertificatePayload
* AirPlayPayload
* AirPlaySecurityPayload
* AirPrintPayload
* APNPayload
* AppLockPayload
* CalDAVPayload
* CalendarSubscriptionPayload
* CardDAVPayload
* CertificatePayload
* CertificatePreferencePayload
* WebClipPayload
* WiFiPayload
and for any other payload or a custom payload you can use the RawPayload.
Profile signing is handled by [jsrsasign](http://kjur.github.io/jsrsasign/) allowing the profile to be signed on any platform that supports [Node.JS](https://nodejs.org/).
## Usage
This package can be both required and imported into your application by using the following:
### require
```
const mobileconfig = require('@carboncollins/mobileconfig');
```
### import (ES6)
```
import mobileconfig from '@carboncollins/mobileconfig';
```
example for creating and generating a mobile profile with an airplay payload:
```
const profile = new mobileconfig.MobileConfigProfile({
displayName: 'Test Profile',
description: 'A test profile to see if it works',
identifier: 'com.mobileconfig.testprofile',
organization: 'mobileconfig',
durationUntilRemoval: 60
});
profile.addPayload(new mobileconfig.AirPlayPayload({
whitelist: [{ deviceId: 'xx:xx:xx:xx:xx:xx' }],
passwords:[{ deviceName: 'test airplay device', deviceId: 'xx:xx:xx:xx:xx:xx', password: 'testpassword' }],
displayName: 'airplay device'
}));
console.log(mobileconfig.generatePropertyList(profile))
```
## API docs
for documentation on this module please checkout the [API Docs](https://github.com/CarbonCollins/mobileconfig/blob/master/docs/api.md)
## Dev notes:
There is a known issue with signing profiles which is currently being looked into
## License
**MIT**