Hello Tony and Philippe,

I don’t think it would be odd for cookie/setting files to be in a folder named 
after Foundation (namely ~/.foundation):
- The files are owned by Swift/Linux Foundation in the sense Foundation writes 
them, and Foundation is the only one that should access them directly. 
Foundation should enforce security.
- On macOS, settings seem to be written to 
~/Library/Preferences/$(BUNDLE_ID).plist, and the proposed 
~/.foundation/Preferences/EXECUTABLE_NAME.plist isn’t that different.
‘.foundation’ is used in lieu of a library directory, and I feel this is 
acceptable so as not to clash with any user ~/Preferences or ~/Library 
directory.  I am OK with the ‘Foundation ownership’ per above.
And, executable name seems reasonable in lieu of bundle ID.

I noted something like ~/.foundation/Library/Preferences/EXECUTABLE_NAME.plist 
may be desirable to keep symmetry/reuse more CF code, but changing Swift CF is 
probably necessary anyway and better (fewer search paths to loop through, 
possibly less I/O).


Am interested in alternatives of course :-)
- But having separate folders for each app seems complicated, ex. 
'~/.app1/Preferences’ ‘~/.app2/Preferences’ pollutes home.
- I don’t really mind the name of an encapsulating folder, .foundation or 
otherwise.
- Placing system configuration files in /etc is a norm, but I think I’d feel 
more comfortable with Swift app settings in /home/user (easier to keep track 
of, and I can delete the whole thing without consequences*). I’m also not 
writing any real low-level services in Swift… but others probably are… but they 
probably have their own code to write config data to /etc!


To Philippe’s points about security+future-proofing:
Perhaps the cookie file could be named per version of its format:
~/.foundation/Cookies/shared initially
When we have a new format:
~/.foundation/Cookies/shared2, shared3, etc? Or even pick a new name entirely?

I also think it should be up to Swift Foundation to enforce cookie security on 
a per-app/family basis (the latter requires changes to the package structure?).
Perhaps for now, it is possible to save the hash and name of the executable 
storing a cookie? And Foundation can load cookie storage only if the executable 
name and file haven’t changed? (Is that an unnecessary pain?)

Regards,
Will Stanton

> On Nov 14, 2016, at 12:44 PM, Tony Parker <anthony.par...@apple.com> wrote:
> 
> Isn’t it a bit odd to use ‘.foundation’ as the name of the directory, when 
> Foundation is just one of the libraries involved? On Darwin, the prefs are 
> organized by application, not by framework.

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

Reply via email to