This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-01-12
Channels
- # admin-announcements (8)
- # alda (11)
- # announcements (53)
- # architecture (2)
- # aws (10)
- # beginners (69)
- # boot (403)
- # braid-chat (160)
- # cider (10)
- # cljs-dev (14)
- # cljsjs (26)
- # cljsrn (34)
- # clojure (223)
- # clojure-art (1)
- # clojure-brasil (4)
- # clojure-dev (10)
- # clojure-france (1)
- # clojure-gamedev (1)
- # clojure-nl (14)
- # clojure-russia (20)
- # clojure-seattle (8)
- # clojure-sg (1)
- # clojurebridge (2)
- # clojurescript (156)
- # code-reviews (2)
- # community-development (305)
- # cursive (5)
- # datavis (33)
- # datomic (38)
- # devcards (4)
- # dirac (39)
- # dunaj (3)
- # emacs (5)
- # events (2)
- # funcool (45)
- # hoplon (3)
- # instaparse (24)
- # jobs (2)
- # ldnclj (77)
- # lein-figwheel (4)
- # leiningen (1)
- # mount (49)
- # nyc (14)
- # off-topic (52)
- # om (125)
- # omnext (4)
- # onyx (13)
- # other-lisps (1)
- # overtone (8)
- # parinfer (31)
- # plastic (6)
- # portland-or (3)
- # quil (4)
- # re-frame (6)
- # reading-clojure (16)
- # reagent (212)
- # ring-swagger (11)
- # robots (5)
- # spacemacs (4)
- # specter (1)
- # yada (26)
we're working on a chat app to replace slack and I'm just making sure we use the right tools
@meow: i'm using yada with a re-frame app, which also happens to be a chat app - it's strengths for me are [1] fully async [2] resources are data (i can walk and update a tree of resources) [3] swagger [4] parameter validation and coercion with prismatic schema [5] it does HTTP - e.g. a badly formatted request (fails schema checks) will return a 400 without any effort on your part
@mccraigmccraig: sounds great - can you help with #C0CB40N8K and #C0J20813K cc: @rafd:
@meow: my time is limited - i probably won't have any in the near to medium future for programming - but since i've been developing a chat app i might have had some useful experiences, which i'm happy to share
I’m failing at the first hurdle trying to get started with yada. I’ve created a new project with the following dependencies: [[org.clojure/clojure "1.7.0"] [aleph "0.4.1-beta3"] [yada "1.1.0-20151231.174657-5"]] The code is: (ns yadahello.core (:require [aleph.http :refer [start-server]] [yada.yada :refer [yada resource]])) (defn run [] (start-server (yada "Hellow world") {:port 3000})) When I import my package I get the following error: CompilerException java.io.FileNotFoundException: Could not locate clojure/core/cache__init.class or clojure/core/cache.clj on classpath., compiling:(clojure/core/memoize.clj:1:1) If I change to using yada 1.0.0 I don’t get the error, but then I run into issues trying to get some of the examples from the manual to work (PUTing to a resource backed by an atom just sets the atom to nil for example)
@mccraigmccraig: sharing is caring ❤️
@davesnowdon: as per our email conf, add the following to your deps: ` [org.clojure/core.cache "0.6.4"]`
repeating here so others can see I care
(and in case anyone else is at the same hurdle) - apologies, have fixed already on my next commit
@meow: I'm happy to help #C0CB40N8K too. I believe yada is the currently the best HTTP library for Clojure, but I'm somewhat biased
@malcolmsparks: I look forward to working with you
@malcolmsparks: thanks Malcolm, I confirm it now works in my env
I didn't know about braid. Nice name for a clojure chat program!
@davesnowdon: you were asking in #C0522EZ9N about OAuth2 support. I was working on that over the weekend actually - in OAuth2 parlance you'd use yada for your resource server and the upcoming release has another multimethod for the type in Authentication header, e.g. Basic, Digest, Bearer (OAuth2) and can also authenticate based on cookies (Custom)
You /could/ write an authentication server (login screens, totp, etc.) in yada, but that's not provided out of the box. The next release has some security examples for Basic, Login Form (cookie), and others
I'm keen on supporting my new yubikey xmas toy too
that's relatively straight forward
you can also use a third-party auth server like http://keycloak.jboss.org/ which uses asymmetric keys
it will sign a token with its private key, and you can use the public key to verify the Bearer token, which I believe is a JWT like @mccraigmccraig is using
My examples use buddy's buddy-sign for JWT tokens, and I may provide that 'in the box' with yada because it's a good implementation which juxt have used on a number of projects
but essentially the job of verifying the Bearer token is the up to you
btw. the yada on master supports CORS headers fully, not HSTS yet but it's on the way