Coder Social home page Coder Social logo

airyhq / airy Goto Github PK

View Code? Open in Web Editor NEW
368.0 9.0 46.0 173.76 MB

๐Ÿ’ฌ Open Source App Framework to build streaming apps with real-time data - ๐Ÿ’Ž Build real-time data pipelines and make real-time data universally accessible - ๐Ÿค– Join historical and real-time data in the stream to create smarter ML and AI applications. - โšก Standardize complex data ingestion and stream data to apps with pre-built connectors

Home Page: https://airy.co/docs/core

License: Apache License 2.0

Starlark 8.71% Java 37.75% Shell 0.53% TypeScript 37.33% SCSS 8.97% HTML 0.44% Go 4.80% Dockerfile 0.10% Makefile 0.06% Mustache 0.50% Python 0.14% HCL 0.67% JavaScript 0.01%
airy ingestion-platform nlp bot natural-language-processing bots nlu conversational-ai conversational-bots opensource

airy's People

Contributors

abhi-airy avatar aitoralgorta avatar armanjindal avatar audreykj avatar bilge-cakmak avatar bitboxer avatar chrismatix avatar dependabot[bot] avatar ellaknox avatar juan-sebastian avatar lizhutter avatar ljupcovangelski avatar lucapette avatar lucile-airy avatar nerboda avatar ogbeche77 avatar olia-la avatar parasdiwan avatar pascal-holy avatar paulodiniz avatar sgarroum avatar soumyajitsamanta avatar steffh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

airy's Issues

Core auth password reset

As a core user
I want to be able to reset password for a specific user
So the password is changed

POST /users.password-reset
{
  "token": "a valid request password token",
  "new_password": "a valid new password"
}

Returns

200 OK {}

Core auth email configuration

As a core auth user
I want to be able to send email

We need to allow core users to configure email providers
For the MVP we could use ENV variables to configure SMTP

Core auth sign in

POST /users.login
{
  "id": "user-id",
  "password": "<pass>"
}

Returns

{
  "id": "424242-4242-42-4242-4242",
  "first_name": "Grace",
  "last_name": "Hopper",
  "token": "JWT_TOKEN"
}

The returned JWT token must have the user_id on the payload

Normalize health endpoints

Both in the core and on platform we have two types of apps with health check endpoints:

Some use an explicitly defined endpoint at /health, while others implicitly use the Spring provided /actuator/health.

Api documentation

Have a loook at docs/self-source/ and see what we can keep/discard for the OSS version.

Move webhook code to core

  • Move api/worker/webhook-publisher and use interactive queries
  • Move api/worker/redis-worker
  • Move webhook admin code to admin app

Add Redis to bootstrap

Our webhooks need an in-cluster redis installation that they can use for the queueing. Therefore the bootstrap should create one.

Core auth sign up

Core Auth app needs to serve signups as an endpoint

POST /users.signup
{
  "email": "[email protected]",
  "first_name": "Grace",
  "last_name": "Hopper",
  "password": "much-password-such-sec"
}

Returns

{
  "id": "11111111-2222-3333-4444-5555555555555",
  "created_at": "2016-05-15T19:53:12.368652374-07:00",
  "updated_at": "2016-05-15T19:53:12.368652374-07:00",
  "token": "JWT_TOKEN"
}

Bug - Connecting a Channel of source Facebook fails

Summary

  • GIVEN I have configured the Facebook App Id, App Secret and Webhook Secret in the config file /infrastructure/airy.conf
  • GIVEN I have run vagrant provision --provision-with user-data
  • GIVEN I have a valid auth token
  • WHEN I send an authenticated request to /channels.connect with the required parameters being defined
  • THEN I receive a 500 error with error message
{
  "message": "400 Bad Request: [{\"error\":{\"message\":\"Invalid Client ID\",\"type\":\"OAuthException\",\"code\":101,\"fbtrace_id\":\"A9Wfm-HkGSKuWvJYetcjDY_\"}}]"
}

URL:

https://github.com/airyhq/core/blob/main/docs/api.md#connecting-channels

Steps to reproduce:

Send an authenticated request such as:

curl --request POST \
  --url http://192.168.50.5:20947/channels.connect \
  --header 'authorization: SOME_VALID_TOKEN' \
  --header 'content-type: application/json' \
  --data '{
	"source": "facebook",
	"source_channel_id": "SOME_PAGE_ID",
	"token": "SOME_VALID_FACEBOOK_USER_TOKEN"
}'

Actual result:

500 Error - indicating that the relevant Airy App ID and App Secret where not applied correctly to the relevant request to Facebook

Expected result:

The relevant Facebook Page should be connected

Environment:

Local

Severity/Priority:

High/High

Reproducible:

Multiple times

Browsers:

Platform/OS:

MacBook Pro 16GB RAM

Date & Time:

22.10.2020 at 11:07 UTC

Reporter:

steffh

Attachments:

Notes:

Optimize OS and Minikube

Currently we are packaging the Airy Core Platform on an existing CentOS image and in order to make the whole package smaller, we need to user either Debian or some other alternative, to make it as slim as possible, but still to run with all the features and functionalities.

Core Minimum version

Userstory

As an open-source developer using the core platform
I want to start the core on minikube
so that I can have the setup locally

Acceptance Criteria

  • GIVEN I have the core repository locally
  • WHEN I run a certain command
  • THEN I have a minimum facebook ingestion platform
  • THEN I have an admin service for adding/removing channels
  • THEN I have a minimum message and conversation API

Dev Notes

Definition of Done

  • Code review done
  • Acceptance criteria passed
  • Documentation done
  • Internal rollout communication done

Core auth password reset request

As a core user
I want to request a password reset for an email
So the user receives a reset password email

POST /users.request-password-reset
{
  "email": "[email protected]"
}

Returns a 200 response with an empty body and sends an email containing a valid reset link

Channels API

endpoints:

  • channels.connected
  • channels.available
  • channels.connect
  • channels.disconnect

Open Source checklist

Before we can actually open source the repository there's a variety of tasks that must be completed:

  • Add a license
  • Rewrite the kafka cluster test code as it's now a copy and paste from confluent code
  • Document the data model accurately
  • attribute springboot.bzl original work
  • move work in progress from zube to github projects
  • Make sure the endpoints follow the convention /something.action
  • Review topics config configuration
  • Limit the repository's deployment credentials to only the resources it needs

Unread count

  • return on API
  • send via websocket
  • mark read api

Core auth accept invitation

As a core user
I want to click on a accept invitation link that came by email
So that my user gets created

POST  /users.accept-invitation
{
  "id": "invitation-id",
  "first_name": "First name",
  "last_name": "Last name",
  "password": "strong password"
}

returns

{
  "id": "user id",
  "email": "[email protected]",
  "first_name": "First name",
  "last_name": "Last name",
  "token": "TOKEN"
}

Core auth create invitation

As a user of the core
I want to be able to create open invitations to users
So they can receive invitation emails

POST /create-invitation
{
  "email": "email to invite"
}

Returns 200 with an empty response

The invitee should receive an invitation email

Set up Core Auth App

New app that uses JDBI with a simple /hello-world endpoint that returns JSON data

Do not change files in the repo at bootstrap time

After running scripts/bootstrap.sh

 git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   deployments/api-admin.yaml
	modified:   deployments/sources-facebook-events-router.yaml
	modified:   deployments/sources-facebook-webhook.yaml

no changes added to commit (use "git add" and/or "git commit -a")

Websocket

  • message upsert websocker
  • docs
  • channel websockets

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.