Skip to content

[Core] General API/VFS and base Applications #304

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
27 of 40 tasks
andersevenrud opened this issue Jan 27, 2016 · 38 comments
Closed
27 of 40 tasks

[Core] General API/VFS and base Applications #304

andersevenrud opened this issue Jan 27, 2016 · 38 comments

Comments

@andersevenrud
Copy link
Member

andersevenrud commented Jan 27, 2016

Before hitting an eventual beta, OS.js needs to nail down API and VFS "backend" methods and client integration.

Recently I've gotten some really good feeback that has finally initiated this process.

Core

Packages

  • Add support for less compile via metadata
  • Add support for before/after hooks via metadata

Applications

API

  • New descriptive URIs [Server] Improvements to API calls #302
  • Refactor node server HTTP handling for "descriptive URIs"
  • Refactor php server HTTP handling for "descriptive URIs"
  • Group permission for apps ([API] Privileges via Groups #105)
  • Blacklisting of apps per-user
  • "Countable" locales ([General] "Countable" translation #291)
  • Add checkVFSPrivilege() (VFS per-user permissions hook)
  • Add checkPackagePrivilege() (Package per-user permissions hook)
  • server-php does not support package permissions right now
  • Copy/Paste files via keyboard
  • Add Application::_api() with the default pattern and deprecate Application::_call() (over the next releases)
  • Improve Search APIs ([Core] Search Engine #385)

VFS

  • Check if mount is readonly before trying something (Should be implemented. No error in filemanger) ?
  • New namespace for "transports"
  • Better Handler integration [Server] Improvements to API calls #302
  • Better dataSource handling on server
  • Add support for mounting/unmounting client supported modules
  • Add support for HTTP proxy file getting (including config/setting)
  • Abstraction for VFS Modules in client
  • Improve application error handling (in some cases like FileManager it will "hang")
  • "Spring cleanup"
  • Progress dialogs (realtime) on all VFS modules
  • Read last modified timestamp on save functions
  • WebDAV support ([VFS] WebDAV & OwnCloud #297)
  • OwnCloud support ([VFS] WebDAV & OwnCloud #297)
  • Extended DAV support ([VFS] WebDAV & OwnCloud #297)
  • DAV Auth Header doc
  • Send multiple operations over VFS methods
  • Indexed file trees for quicker searches
  • Disabling of default mounts (like osjs/apps) via src/conf

Misc

  • Update homepage docs
  • Ensure NW still works fine in nightly
  • Ensure this transitions into Arduino branch/codebase
  • Add docs/examples on how to do permissions
@andersevenrud andersevenrud self-assigned this Jan 27, 2016
@andersevenrud andersevenrud added this to the 2.0.0-beta1 milestone Jan 27, 2016
@andersevenrud
Copy link
Member Author

@RickGlimmer This issue now superseeds #302 and #303.

@andersevenrud
Copy link
Member Author

FYI: I am merging this into master as we speak :)

andersevenrud added a commit that referenced this issue Jan 27, 2016
@andersevenrud andersevenrud changed the title [VFS] General Improvements [VFS/API] General Improvements Jan 27, 2016
@andersevenrud andersevenrud changed the title [VFS/API] General Improvements [VFS/API] General Improvements and maintainence Jan 27, 2016
andersevenrud added a commit that referenced this issue Jan 28, 2016
@andersevenrud
Copy link
Member Author

@RickGlimmer Thoughts on the changes ? :)

@RickGlimmer
Copy link

I am testing them right now. :) It is a lot easier to work with that is for sure! 👍

@RickGlimmer
Copy link

The write could be a bit easier. :)
It is now:
{ data: "data:image/png;base64,iVBOR...."
path: "home:////New file.png" }

If you can split the data it would be great. Maybe like this:
{ path: "home:///New files.png", mime: "image/png", encoding: "base64", data: "iVBOR....."

@andersevenrud
Copy link
Member Author

The "problem" is that the data is made with the browser APIs and comes with full data uri. Relevant: https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs

I don't want to perform any string-type operations on this in the client (effectively doubles the needed ram usage).

The server assumes that write comes with base64 unless the raw options flag is set (binary).

@andersevenrud
Copy link
Member Author

@RickGlimmer This problem can somewhat be "solved" another way. Instead of relying on write function on the server, it is possible to simply use the browser upload functinality. That way the transport is always arraybuffer.

It's something I'm considering.

But as you said, this made it a bit easier to work with, and avoid confusions with nested JSON to the APIs. Also debugging is a bit better in the browser now since it makes a distinct entry in the network monitor (no more "API" only. It actually shows the method used)

@junland
Copy link

junland commented Jan 28, 2016

+1 for group permissions :)

Also HTTPS with Let's Encrypt support?

@andersevenrud andersevenrud changed the title [VFS/API/GUI] General Improvements and maintainence [Core] General Improvements and maintainence Mar 21, 2016
@khoaakt
Copy link

khoaakt commented Apr 3, 2016

Ahem, long time do not feedback for osjs 😄
I will talk about the desktop. Now, it's just support 'Shortcut' and can't copy or create file or folder on it. So, turn desktop into a folder like other operating systems!

@andersevenrud
Copy link
Member Author

@khoaakt I'll look into that, but the current desktop icon view was designed to work as shortcuts.

I can maybe provide both solutions and have it in Settings

@andersevenrud andersevenrud removed their assignment May 14, 2016
@andersevenrud andersevenrud mentioned this issue Jun 1, 2016
18 tasks
@andersevenrud andersevenrud changed the title [Core] General Improvements and maintainence [Core] General API/VFS and base Applications Jun 1, 2016
@andersevenrud
Copy link
Member Author

Closing this issue. The remaining stuff will get its own issues when I get started

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants