Git Product home page Git Product logo

deepstream.io-website's Introduction

The active repository for the documentation website is https://github.com/deepstreamIO/deepstreamIO.github.io

The up-to-date version of the documentation can be found at https://deepstreamio.github.io/

Gatsby

deepstream.io website

πŸš€ Quickest start without downloading

  1. Go to the document you want to edit on deepstream.io (click on the github icon on each page)
  2. Edit the file
  3. Commit

πŸš€ Quick start for downloading

  1. git clone
  2. npm i
  3. npm run develop
  4. Edit as you see fit
  5. Commit
  6. Raise PR

A quick look at the top-level files and directories you should care about:

.
β”œβ”€β”€ content
β”œβ”€β”€ code-examples
β”œβ”€β”€ markdown-templates
└──src
  1. /content: This directory contains all the content markdown content on the website and is organized into the different routes on the application. Adding a document in most cases will automatically add it to the index pages and the navigation menus.

  2. /code-examples: This directory contains all the example code in the application (mostly guides and plugins). It's useful to have them live here due to prettify and typescript validation.

  3. /markdown-templates: This directory contains all the snippets reused across the website (to the horror of search engines). Use and add to these sparingly.

  4. /src: This directory contains all the react components and styles to render the page. If you feel a component can be displayed better this is the place to be!

πŸ’« Deploy

Website automatically gets deployed from master to https://deepstream.io and from staging to https://staging.deepstream.io

deepstream.io-website's People

Contributors

apkostka avatar berlinchan avatar cristi-an avatar devramx avatar fabianmarz avatar jaime-ez avatar michaeljcole avatar ronsper avatar stevexm avatar timarandras avatar whitelizard avatar wolframhempel avatar yasserf avatar zolotarev avatar zweimach avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

deepstream.io-website's Issues

Readonly Records on create

If I have user A that has read access to a record, (that does not exist yet, ie no create permission).
And I have a active data provider that listens for that record, then goes off and gets the real data and sets it into deepstream.

What should happen when user A calls the Record.get as the doco says it creates the record if it does not exist. eg I only want the active data provider to create the record.

How to configure permissions using nodeJS

I've been reading a lot about deepstream lately and wanted to use this in our system. We have a python/django based system and found that there's no official client for python yet. The next option for us was nodejs and microservice architecture. I found a few things in the documentation but there was nothing related to emitting events, records or rpc from node. Can someone explain ( or even point me to a resource ) on how to do this?

CI

Hi @yasserf ,
The website is not uploading anymore due to travis.
Can you please add the s3 ACCESS_KEY_ID and SECRET_ACCESS_KEY to this repository secrets in order to set up a github action to deploy it?
Cheers

Documentation - Listen to self

I recall there being a gotcha for the listen functionality. Something about the same client not being able to both subscribe and listen to the same record. Is this documented somewhere?

doc dead link

on https://deepstream.io/tutorials/concepts/what-is-deepstream/ dead link Browsers/Node

Rename sections

I propose changing guides to examples. When looking for documentation I always doubt whether it will be on guides or tutorials since they have similar meanings. Examples would be more clear for the guides section since that is what they are, example usages of deepstream.

Better document internals

I was reading through documentation but could not find more information how things are implemented internally. What I have especially been interested in how is real-time features of records being implanted across multiple database backends. So how it is determined which records have to be updated when something is changed, and how are changes detected in the first place.

See example of a great writeup from Hasura about similar questions. It gives great insight into what were design decisions, how it works, and what are limitations. For Deepstream I cannot really get an understanding of all this.

help needed with new documentation website

Hi, I'm moving documentation to docusaurus in order to make it easier to maintain.

Please check out the docusaurus branch on this repo, any contributions welcome. Help needed with linking to other documentation sections, images, and sidebar layout.

The idea is once it's ready it will be published to github pages and thus that will be the documentation going forward.

Thanks in advance!

`presence.getAll()` returns null for previous client connections

Using 4.2.2 deepstream docker image with docker-compose, a 4.x client querying presence, and a 2.3.0 client logging in.

Client logs in with a username:

ds.login({ type: 'webhook', username: device_id }, (success, data) => { ...

Which does trigger a response from ds.presence.subscribe(device_id, (dev, login) => {...

However, if the client logs in, then deepstream (the docker container) is restarted, the initial call for getAll() returns null instead of an object:

ds.presence.getAll([device_id], (connections) => { ...

Clarifying deepstream.io project status

Hey!
So first of all thanks a lot for the great v4 update, I waited a long time for this and I am pumped to see deepstream back in action! I would love to hear a small update however on the general status of the project, since the last information I got in 2017 was that deepstreamHub (the company) was shutting down. What I am curious about is whether deepstream.io is now continued as a community project and (if so), what possible ways of contributing for the community are. I am truly sorry if this has already been posted somewhere else, but it would be really interesting to get a general outline of this projects future.
Thanks again for breathing new life into deepstream.io!

Helper methods for RxJS

Not sure where would be a good place to put this? Could we maybe add rxjs as an optional dependency and if it exists provide the following methods?

RecordHandler.prototype.observe = function (recordName) {
  return Rx.Observable
    .create(o => {
      const record = this.getRecord(recordName)
      const onValue = value => o.next(value)
      const onError = error => o.error(error)
      record.subscribe(onValue, true)
      record.on('error', onError)
      return () => {
        record.unsubscribe(onValue)
        record.off('error', onError)
        record.discard()
      }
    })
}

RecordHandler.prototype.provide = function (pattern, provider) {
  const subscriptions = new Map()
  this.listen(pattern, (match, isSubscribed, response) => {
    if (isSubscribed) {
      const onError = err => {
        this._client._$onError(C.TOPIC.RECORD, pattern, [ match, err.message ])
        response.reject()
      }
      try {
        Promise
          .resolve(provider(match))
          .then(data$ => {
            if (!data$) {
              response.reject()
            } else {
              response.accept()
              subscriptions.set(match, data$.subscribe(value => response.set(value)), onError)
            }
          })
          .catch(onError)
      } catch (err) {
        onError(err)
      }
    } else {
      const subscription = subscriptions.get(match)
      subscription && subscription.unsubscribe()
      subscriptions.delete(match)
    }
  })
}

Broken Footer Link

I clicked on the footer link "Install" on your website and got an error message saying "You seem to be lost! If you found yourself here by one of the links on deepstream.io, please raise an issue here".

wishlist: deepstream.io documentation

Hello!

We want to create a central place to capture all of your documentation requests for deepstream.io, which could both be things that are:

  • external ( how to use deepstream with service or library XYZ )
  • internal ( how/what is a deepstream feature used )
  • misc ( anything that doesn't fall under the first two! )

This will help us put together a much more visible roadmap!

The ideal comment could have a format like this:

=====

How to host deepstream.io on ECS

Type: External

Description:
Would like to have a guide on setting up deepstream.io on ECS

=====

=====

Deepstream Record Lifecycles

Type: Internal

Description:
How does a deepstream record lifecycle look like? What does it exactly do?

Or to quote the original author:

there really needs to be a lifecycle explanation/diagram. im going nuts trying to figure out the lifecycle if a record when calling unsubscribe, discard, delete, setName, etc. lol and the reusability of a record

=====

=====

How to make my furniture less lonely

Type: Internal

Description:
How can I use deepstream.io to build a furniture dating app?

Or to quote the original author (totally paraphrasing here) (also idea is already taken sorry =P):

I want to build a matching app for my furniture and those seeking furniture, so that I can swipe through all the stuff out there till I find me the perfect match. How can I use deepstream/Hub to do this and how much time would it take?

=====

Delete adding of Linux service in DS v6

Trying to add as a service
sudo ./deepstream service add -c ./conf -l /var/log

Fails with the following error . The Service was never installed.

Service already exists, please uninstall first

deepstream version: 5.0.4

Broke on Firefox

Hi,

I noticed there are a small issue with the width of the documentation on Firefox (latest, 87.0 (64 bits)): The doc is shrunk to the left on 1/3 on the screen while it should be approx 3/4: https://ibb.co/TmtMj1c
(It seems to not happen on my Windows' Firefox)

I suggest to add width: 100%; to the following div elements which is displayed as flex:
https://github.com/deepstreamIO/deepstream.io-website/blame/73a75071a716479ad44e66827d014b547553c93f/src/components/Markdown/MarkdownContent/MarkDownContent.module.css#L2

After research I suppose that's a bug of Firefox: https://drafts.csswg.org/css-flexbox-1/#flex-containers
I primarily though that's were a miss but according to what I read on the draft it should react like a display: block while it act weirdly.

Not starting without a config file

Node API docs first example does not work:

const { Deepstream } = require('@deepstream/server')
const server = new Deepstream()

It gives the following error output:

(node:28249) UnhandledPromiseRejectionWarning: Error: No config file found
    at getDefaultConfigPath (/home/blomqesb/dev/web/ds-node-service/node_modules/@deepstream/server/src/config/js-yaml-loader.ts:194:9)
    at setGlobalConfigDirectory (/home/blomqesb/dev/web/ds-node-service/node_modules/@deepstream/server/src/config/js-yaml-loader.ts:129:7)
    at Object.exports.loadConfigWithoutInitialization (/home/blomqesb/dev/web/ds-node-service/node_modules/@deepstream/server/src/config/js-yaml-loader.ts:61:22)
    at Object.exports.loadConfig (/home/blomqesb/dev/web/ds-node-service/node_modules/@deepstream/server/src/config/js-yaml-loader.ts:87:24)
    at Deepstream.loadConfig (/home/blomqesb/dev/web/ds-node-service/node_modules/@deepstream/server/src/deepstream.io.ts:455:35)
    at new Deepstream (/home/blomqesb/dev/web/ds-node-service/node_modules/@deepstream/server/src/deepstream.io.ts:91:10)
    at Object.<anonymous> (/home/blomqesb/dev/web/ds-node-service/test/bug1.js:3:16)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
(node:28249) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:28249) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

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.