OS X/macOS and iOS support configuration profiles. This allows extremely easy setup of CalDAV and CardDAV clients.
Provide them inside the clients would be also nice (but maybe complicated according to our use of a themed ownCloud desktop client and a CryptoCloud for iOS 馃榿) But generally: 馃憤
a download button should be shown in the personal settings and the first run wizard dialog
Here is my ready-to-use standalone service for profiles: https://github.com/alve89/PHPMobileConfig
May be this is interesting. :)
Would we really need a full blown service for that. Wouldn't it be sufficient to have a static sceleton like:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>CalDAVAccountDescription</key>
<string>$CAL_DAV_DESC$</string>
<key>CalDAVHostName</key>
<string>$SERVER_URL$</string>
<key>CalDAVPort</key>
<integer>443</integer>
<key>CalDAVPrincipalURL</key>
<string>$PRINCIPAL_URL$</string>
<key>CalDAVUseSSL</key>
<true/>
<key>PayloadDescription</key>
<string>Configures a CalDAV account</string>
<key>PayloadDisplayName</key>
<string>CalDAV</string>
<key>PayloadIdentifier</key>
<string>com.apple.caldav.account.6F38664A-FC84-43EF-A5EF-EAE97191E5DF</string>
<key>PayloadType</key>
<string>com.apple.caldav.account</string>
<key>PayloadUUID</key>
<string>$CAL_DAV_UUID$</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>$PROFILE_NAME$</string>
<key>PayloadIdentifier</key>
<string>$ID$</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>$UUID$</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
and simply replace the $..$ placeholders with values valid for the current installation?
Well, this library just provides all possible options to be used standalone for all purposes. Of course not all of them need to be configured in the profile (for CalDAV, CardDAV).
On the other hand - perhaps it will be interesting for future releases to implement this library for an app to offer the users to setup a whole profile...?
The only "problem" is the sign process for that the certificates and the keys are needed. Without you can only provide unsigned profiles.
@georgehrke I solved this quick and dirty with the external_sites app of @karlitschek.
@MorrisJobke @nickvergessen @LukasReschke Do you have any preference where to put these provisioning profiles?
I'd like to make it accessible via dav interface, so its easy to access for the iOS app.
Just remote.php/dav/apple-provisioning.plist which automagically generates the correct profile for the logged in person?
Just remote.php/dav/apple-provisioning.plist which automagically generates the correct profile for the logged in person?
Mmmmh. Doesn't sound too bad. Currently this looks like this:
dav:/remote.php/dav/> ls
Listing collection `/remote.php/dav/': succeeded.
Coll: addressbooks 0 Dez 31 1969
Coll: calendars 0 Dez 31 1969
Coll: comments 0 Dez 31 1969
Coll: files 0 Dez 31 1969
Coll: principals 0 Dez 31 1969
Coll: public-calendars 0 Dez 31 1969
Coll: systemtags-relations 0 Dez 31 1969
Coll: systemtags 0 Dez 31 1969
Coll: uploads 0 Dez 31 1969
cc also @rullzer for his opinion.
This looks like a nice way too: https://github.com/alve89/PHPMobileConfig
Is anyone currently working on this? I'd like to do it, but I don't want to duplicate effort.
If we go for dav please in a provisioning folder or something ;-)
Go for it @srbaker!
@srbaker Actually I am. Let me push it to a branch.
https://github.com/nextcloud/server/commit/db504f1aa5112624cdd866a020eeba4f7ee834d0
This is only providing configuration profiles for caldav at the moment.
CardDAV is also provisionable, but it's a huge pain, because you need different profiles for macOS and iOS. (although according to the Apple documentation the profiles are just the same ...)
I was thinking about adding this to the calendar app instead of server, since we allow custom DAV plugins for apps since Nextcloud 13.
And I didnt test this with High Sierra yet. According to https://github.com/nextcloud/server/issues/7519 the current URLs might not be compatible with High Sierra.
@srbaker If you want to, we can discuss how to proceed here and you can take over :)
@georgehrke I would love to pick this up, and will have time around FOSDEM (possibly at, but definitely after).
It would be nice to also have a link to this in the calendar app. Think of he following use-case.
You have some centrally maintained calenders on your nextclould server that is shared with a group of users. That calendar that contains joint meetings of that user-group. So only one user is the owner of this calendar but all users see the calendar in the calendar app. It would be nice if we have a download link next to the already calendar-llinks in the calendar app.
@georgehrke
You鈥檙e false with the argument that the config files for macOS and iOS need to be different. My library generates the same one for both OS and there is no problem with it.
You鈥檙e false with the argument that the config files for macOS and iOS need to be different. My library generates the same one for both OS and there is no problem with it.
Are you referring to https://github.com/alve89/PHPMobileConfig ?
Yes I do @MorrisJobke .
@srbaker Are you still up to implement this? :)
This was added only as a file within the /dav entry point. I guess we need to also add it to the firstrunwizard and the calendar/contacts apps? Or should this go into the personal settings?
Calendar contacts app + first run wizard + mobile and sync section of personal settings. On my todo list :)
@georgehrke If you're at FOSDEM this weekend, I'd love to pair on it to see it through!
Added to first run wizard in https://github.com/nextcloud/firstrunwizard/pull/141
Contacts doesn't contain CardDAV links right now at all, gonna have to evaluate that with @skjnldsv
Closing.
OS X/macOS and iOS support configuration profiles. This allows extremely easy setup of CalDAV and CardDAV clients.
Extremely easy. I have downloaded the XML file from the Settings. But now what next?
How do I get it into my iPhone?
If that can be explained, it would be nice to add this to the user interface as well.
Most helpful comment
Would we really need a full blown service for that. Wouldn't it be sufficient to have a static sceleton like:
and simply replace the $..$ placeholders with values valid for the current installation?