#5643 - Add file name restrictions to support Windows
| Identifier | #5643 |
|---|---|
| Issue type | Trivial issue (does not break functionality) |
| Title | Add file name restrictions to support Windows |
| Status | Open |
| Tags |
Roadmap: Over the horizon (custom) |
| Handling member | Deleted |
| Addon | core |
| Description | Composr should accommodate those running Windows regarding file names and paths.
Add restrictions that would normally be allowed on Linux but not Windows, such as but not limited to directories ending in spaces, colons (and possibly other symbols) in file paths, file paths exceeding a certain length, file names above 60 characters, etc. If a UI detects an attempt at doing this, it will warn_exit. If Composr's file integrity scan detects this, it will list so as a new category of bad files (e.g. "incompatible with Windows file systems"). Add this to modularisation as well. |
| Steps to reproduce | |
| Funded? | No |
The system will post a comment when this issue is modified (e.g., status changes). To be notified of this, click "Enable comment notifications".


Comments
Probably this should first be approached from a unit testing point of view. What is invalid (why), what is valid, write tests for those cases.
Then we can make a call if we need to accept we are tightening up on the existing ID specification or create something new. TBH I would probably rather break some compatibility than layer a lot of extra complexity into the system. Maybe we could consider that field.originalValue is let through codename JS validation somehow, regardless of if it would pass regex validation - and a similar kind of bypass server-side.
I do in general feel codenames should be very locked down.
I don't see how a testing point of view would help; some of the issues can be caused by user error... e.g. a user uploading a file with a large name. It can also be caused by XML database issues. It uses the values of all primary keys as the filename for the entry. We can't easily restrict these because then that would mean ensuring the total number of characters of all primary key columns do not exceed 60 characters. We could perhaps use a hash instead as it would keep all names under 60 characters, but it would also increase the average filename length which can be an issue given Windows also has a 260 character overall limit on the full path. And it's not easy to tell what it is that way without opening it.