Fission Developer Tools

A presentation at Fission Demo Day December 2020 in December 2020 in by James Walker

Slide 1

Slide 1

Developer Tools

Slide 2

Slide 2

CLI Fission Command Line • Available on macOS (homebrew), Linux and Windows *WSL • Register your account • Register (create) apps • Publish your app

Slide 3

Slide 3

Demo

Slide 4

Slide 4

Webnative SDK

Slide 5

Slide 5

🔑 Authentication & Authorization const state = await wn.initialise({ permissions: { app: { name: “Demo”, creator: “Fission” }, }) } // Ask the user permission for additional filesystem paths fs: { privatePaths: [ “Music” ], publicPaths: [ “Mixtapes” ] } switch (state.scenario) { case wn.Scenario.AuthSucceeded: case wn.Scenario.Continuation: // We can now interact with our file system (more on that later) state.fs break; case wn.Scenario.NotAuthorised: wn.redirectToLobby(state.permissions) break; }

Slide 6

Slide 6

🔑 Authentication & Authorization • User controlled • Password-less, key based login ffl • Works o ine

Slide 7

Slide 7

🗄 File System const fs = state.fs const appPath = fs.appPath() // List the user’s private files that belong to this app if (await fs.exists(appPath)) { await fs.ls(appPath) // The user is new to the app, lets create the app-data directory. } else { await fs.mkdir(appPath) await fs.publish() } // Create a sub directory await fs.mkdir(fs.appPath([ “Sub Directory” ])) await fs.publish()

Slide 8

Slide 8

🗄 File System It’s versioned! const file = await fs.get(“private/Blog Posts/article.md”) file.history.list() // { delta: -1, timestamp: 1606236743 } // { delta: -2, timestamp: 1606236532 } // Get the previous version file.history.back() // Go back two versions const delta = -2 file.history.back(delta) // Get the first version (ie. delta -2) // by providing a timestamp file.history.prior(1606236743)

Slide 9

Slide 9

🗄 File System • UNIX-like api (ls, mv, mkdir, etc) • Version history • Private les are encrypted ffl fi • Available o ine

Slide 10

Slide 10

🚧 Database (coming … soon) • EventSource based distributed DB • Document based API (think MongoDB / mongoose) • Schema/Model de nitions fi • 🛳 Ship your mocks

Slide 11

Slide 11

Learn More 📖 Visit the guide: https://guide. ssion.codes/ 💬 Chat with us on Discord: https://discord.gg/daDMAjE fi fi 📆 Book time to talk: https://calendly.com/ ssion