Comments (11)
@jace can I try this one or started working ?
from lastuser.
I haven't done any work on it so far. You will need to check out Flask-RQ and @kushaldas's Retask, to confirm they are suitable.
from lastuser.
zeromq is a better choice for message passing. RQ and retask are good in case of task queues.
from lastuser.
@kushaldas There's no message to be passed. Lastuser only needs to notify apps 1..10 that an update is waiting for them, and these apps will in turn contact Lastuser (via HTTPS) to get the message. Lastuser does not pass the message by itself because it's insecure (the client app may not be using HTTPS, and the client app has no way to authenticate a message from Lastuser).
So the requirement is, when an internal event happens (user edited their profile), Lastuser needs to fire off notices to a bunch of apps asking them to update themselves.
Lastuser runs single-threaded in a development environment. This means if it contacts the client app by itself, and the client app in turn connects to Lastuser, it'll get thread-locked. It needs to delegate contacting to an independent process.
from lastuser.
In that case having separate queues for apps and made them listen to it seems to be answer.
In retask one can just push the same task object to different queues.
from lastuser.
Apps can't listen to queues because they may not be on the same server, or even on a trusted host. Like with the Facebook example I've linked to, they are over the open internet.
Instead, we have an "app notifier" service that listens to the queue and fires off a HTTP request. This app notifier must run in parallel because an app may be offline or unreachable.
from lastuser.
On Fri, Dec 28, 2012 at 2:43 PM, Kiran Jonnalagadda <
[email protected]> wrote:
Apps can't listen to queues because they may not be on the same server, or
even on a trusted host. Like with the Facebook example I've linked to, they
are over the open internet.Instead, we have an "app notifier" service that listens to the queue and
fires off a HTTP request. This app notifier must run in parallel because an
app may be offline or unreachable.—
Reply to this email directly or view it on GitHubhttps://github.com//issues/24#issuecomment-11728132.Understood.
Kushal
http://fedoraproject.org
http://kushaldas.in
from lastuser.
@kracekumar Does this make sense for you? Do you think you can handle it?
from lastuser.
Understood, all the conversation. I can handle this, but don't know how long it is going to take. From high level it looks like whenever user modifies the profile do
1. Add to queue `kracekumar` has changed the profile.
2. Run Background worker to fetch all the apps subscribed to `kracekumar` and if the information is relevant to app do an HTTP POST to the client notification endpoint. I am looking into oauth2 whether notification has to be realtime(can it be queued).
3. What if client endpoint is down, just ignore or resend later.
I want to do this since it is difficult. Since issue description says desperately needed, no issues if you want to take over.
from lastuser.
This is not part of the OAuth spec. The spec in fact says this is out of scope of the spec. We are on our own here. So:
- If the app has a callback endpoint defined (it's optional) and if the app has a valid OAuth token for the user, send them a notice.
- If the app is not reachable, drop it.
As simple as that.
from lastuser.
Can we close this issue?
from lastuser.
Related Issues (20)
- Allow client credentials in place of auth tokens for GraphQL endpoint
- Need unique index on lowercase of UserEmail.email HOT 2
- Disambiguate authorship from ownership HOT 1
- Backend service worker reorganisation
- Inferred vs explicit principals HOT 2
- Email addresses are case sensitive HOT 2
- Deprecate .html jinja templates
- Locked status for UserEmail and UserPhone HOT 2
- Support the Credential Management API
- No verification email for custom domain mailboxes HOT 1
- Merging users should be a reversible transaction
- Endpoint to remove external IDs HOT 1
- Remove Organization and Team models from Lastuser HOT 3
- Use bcrypt/scrypt for client credentials
- Support native app URIs
- Replace oauth2client with google-auth
- Replace load_models with ModelView HOT 2
- Use secure cookies HOT 1
- Use secure Lastuser cookie
- Support multiple redirect URIs HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lastuser.