Thanks to visit codestin.com
Credit goes to github.com

Skip to content

korczis/gooddata-fs

Repository files navigation

gooddata-fs

GoodData as Filesystem (using FUSE)

For more information about GoodData Filesystem Structure see detailed documentation - root.

Notice

This is not official GoodData project neither is supported and/or recommended for production use. You have been warned.

Status

Build Status GitHub license GitHub issues

Binary Information

Version used

Resources Consumption

  • Binary size - 424 KB
  • Real Memory Size - 5.3 MB
  • Shared Memory Size - 228 KB
  • Private Memory Size - 3.6 MB

Command

tree gd

...

15 directories, 49 files

Test account has access to 14 projects

Dependencies

otool -L ./target/debug/gooddata-fs
./target/debug/gooddata-fs:
	/usr/local/lib/libosxfuse_i64.2.dylib (compatibility version 10.0.0, current version 10.3.0)
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
	/usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
	/usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)

Security

Thanks to Rust language features gooddata-fs is immune to:

  • Stack Overflow - occurs when a program writes to a memory address on the program's call stack outside of the intended data structure, which is usually a fixed-length buffer.
  • Heap Overflow - type of buffer overflow that occurs in the heap data area.
  • Integer Overflow - occurs when an arithmetic operation attempts to create a numeric value that is too large to be represented within the available storage space.
  • Dangling Pointers - special cases of memory safety violations.

Why Rust?

  • Zero-cost abstractions
  • Move semantics
  • Guaranteed memory safety
  • Threads without data races
  • Trait-based generics
  • Pattern matching
  • Type inference
  • Minimal runtime

Supported Operating Systems

Prerequisites

Optional

Mac Specific

Optional

Getting Started

Clone & Build

git clone https://github.com/korczis/gooddata-fs
cd gooddata-fs
cargo build

Install (optional)

cargo install

Usage

$ ./bin/gooddata-fs --help
GoodData as Filesystem 0.0.5

USAGE:
    gooddata-fs [FLAGS] [OPTIONS] <username> <password> <mountpoint>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --cache-size <cache-size>    LRU Cache Size [default: 32768]
    -s, --server <server>            Server to use [default: https://secure.gooddata.com]
    -t, --token <token>              Token for creating of projects

ARGS:
    <username>      GoodData Username
    <password>      GoodData Password
    <mountpoint>    Mount Point

Mounting GoodData as Filesystem

Running built binary

# ./target/debug/gooddata-fs <USERNAME> <PASSWORD> <MOUNTPOINT>

RUST_BACKTRACE=1 RUST_LOG=debug ./target/debug/gooddata-fs [email protected] secretpassword /Users/joe.doe/gd

Running installed binary

# gooddata-fs <USERNAME> <PASSWORD> <MOUNTPOINT>

RUST_BACKTRACE=1 RUST_LOG=debug gooddata-fs [email protected] secretpassword /Users/joe.doe/gd

Filesystem structure

root

.
├── projects
│   ├── $ocka
│   ├── Boot Camp 3 Exercises 01
│   ├── Date Dictionary
│   ├── GDC Git 0.2
│   ├── GoodDuty & Calendars
│   ├── GoodStatistics Demo
│   ├── MAQL Boot Camp 01
│   ├── MS ETL 3.0
│   ├── Ruby downloaders
│   └── Training March
└── user.json

Development

Docker

Make the parent mount point 'shared'. For example, if the gooddata mountpoint is /mnt/gd-fs, do:

sudo mount --make-shared $(df --output=target /mnt/gd-fs | tail -n1)
cd scripts/docker
./build-local.sh

Environment

Mac Specific

Make sure you have openssl installed and linked.

brew install openssl
brew link --force openssl

Tools

cargo install racer
cargo install rustfmt

Customization

Useful commands

Show tree

tree -as gd/

Print all .json files

find gd/ -name '*.json' -exec cat {} \; | cat

About

GoodData as Filesystem (using FUSE)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •