Coder Social home page Coder Social logo

dabbu-knowledge-platform / files-api-server Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 1.0 5.04 MB

An implementation of the Dabbu Files API that enables you to access your files, folders and emails stored with multiple providers as simple files and folders, all in one place!

Home Page: https://dabbu-knowledge-platform.github.io/

License: GNU General Public License v3.0

Shell 3.95% TypeScript 96.05%
dabbu dabbu-api dabbu-server google-drive google-api-client gmail one-drive hard-drive filesystem filestorage file-server

files-api-server's Introduction

Dabbu Files API Server

NodeJS CI Platforms: Alpine Linux MacOS Windows

With the Dabbu Knowledge Platform, we aim to rethink the way we organize and traverse large amounts of knowledge, no matter where it is stored.

Dabbu allows you to access any of your personal information (Gmail, Google Drive, OneDrive, your hard drive, ...) as simple files and folders from Dabbu CLI.

It not only allows you to seamlessly search/traverse your information across these sources (as simple as cd, list), but also move information around between drives (copy) - yes even your Gmail messages in a thread get copied to your hard drive as .md files in a zip if you do a c:/$ cp m:/INBOX/* ./"My Emails".

You can also go into the special knowledge drive where you can pivot information by topics/people/places e.g. k:/$ cd austin (will return you all your information from Gmail, Google Drive, OneDrive that has a reference to the place Austin). You can further narrow your search by doing k:/austin$ cd [email protected] (yes it even extracts people and allows you to pivot information by them). This would show you all emails and files that are related to Austin and from/to [email protected].

All of this has been implemented by abstracting access to providers (you can add more providers as modules) and exposing a unified API for information (no matter where and what form it takes).

The only way to use Dabbu (at the moment) is through a command-line interface (CLI). A desktop app is in the works.

This is an implementation of the Dabbu Files API. This repository does not house the code for the CLI. Information on the CLI, including installation process and setup, can be found here.

Using the Files API Server

The Files API Server can be used in any application to access the user's files and folders. Some providers require the user to authorize the app using OAuth 2.0. To get started on using the Files API Server in your app, look at the getting started guide (Work in progress, though API documentation is complete).

Providers supported

To request a new provider, file an issue here.

Issues and pull requests

You can contribute to Dabbu by reporting bugs, fixing bugs, adding features, and spreading the word! If you want to report a bug, create an issue by clicking here. While creating an issue, try to follow the Bug report or Feature request template.

Please read contributing.md for a detailed guide to setting up your environment and making changes to the code.

Also, if you need any help on the code, please do ask on this Github discussion. We will only be glad to help :)

Legal stuff

License - GNU GPL v3

All projects of the Dabbu Knowledge Platform are copyrighted (C) 2021 Dabbu Knowledge Platform [email protected] and licensed under the GNU GPLv3 license. See license.md for a copy of the license file.

files-api-server's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar gamemaker1 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

atomicblonde2

files-api-server's Issues

[BUG]: Files with a '/' in their name don't get copied

Describe the bug
When downloading/copying a file with a / in its name, the operation fails with a 404 error, stating the file (here only the part after the / in the name is given) does not exist. E.g.: If the file is named Download File/Copy File Test, the CLI assumes Download File to be a folder and only Copy File Test to be the file name.

To Reproduce
Steps to reproduce the behavior:

  1. Rename a file to contain a / in its name (Google Drive/Gmail thread)
  2. Try downloading the file using the read command or copying it using the copy command
  3. See error (404)

Expected behavior
The file gets downloaded or copied

Screenshots
If applicable, add screenshots to help explain your problem.

Versions (please complete the following information):

  • Dabbu CLI Version: Affects all up to v3.2.0
  • OS Version: Affects Windows/MacOS/Linux

Additional context
Seems to be a problem with the CLI trying to parse a filename out of the full path, and ends up taking the part after the '/' in the file name as the entire file name.

[CODE]: Migrate to Typescript

Describe the issue
The code currently has no typing. It should be strongly typed, especially since this is an API implementation and shoud return results in a specific format.

How could it be made better?
Migrating existing code to Typescript. Also, creating separate models for resources like files would help in consistency with the API.

Screenshots
If applicable, add screenshots to help explain the benefits of your changes.

Additional context
Add any other context about the problem here.

[NPROV]: Add Dropbox provider

Name of provider

Dropbox

Any ideas on how it should be implemented

API is detailed here.

Additional information
Add any other thoughts here

[CODE]: Add Tests

Describe the issue
There are currently no tests written to check API behaviour when changes are made.

How could it be made better?
Adding tests using a test runner like Ava and create a Google/Microsoft/etc account to simply test the API.

Screenshots
If applicable, add screenshots to help explain the benefits of your changes.

Additional context
Add any other context about the problem here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.