Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    kalyankuramana
    @kalyankuramana
    if one uses ticket policy , then the key should be sent over a cookie with cookie name as auth_tkt
    for more information look in pyramid.authentication.AuthTktAuthenticationPolicy
    and observe pyramid.authentication.AuthTktCookieHelper.identify()
    Bachir El Khoury
    @bachirelkhoury

    thanks @kalyankuramana I have setup to use x_token_auth:

    securedBy: [x_token_auth]

    The issue I'm getting is that x_token_auth requires settings as per this comment:
    https://github.com/ramses-tech/ramses/issues/97#issuecomment-160353919

    ...
        - x_token_auth:
            description: Authorization header token policy
            type: x-ApiKey
            settings:
                foo: bar
    ...

    if I run this I get this error which is fair enough, I'm not sure what parameters this accepts. Can't find references in the docs.

      File "~/.virtualenvs/myenv/lib/python2.7/site-packages/ramses/auth.py", line 133, in _setup_apikey_policy
        policy = ApiKeyAuthenticationPolicy(**params)
    TypeError: __init__() got an unexpected keyword argument 'foo'
    kalyankuramana
    @kalyankuramana
    no need to provide settings parameter , it is required if you want to use custom model for auth and have not specified in custom schema ("_auth_model":true) then
    kalyankuramana
    @kalyankuramana
    ...
    settings:
    user_model: <schema name>
    check: <a callback to return none if user does not exist or principal identifier if user exists: format check(username,apikey,request)> (optional)
    credentials_callback: < a callback to return token given username and request> format:(username,request) (optional)
    ...
    Bachir El Khoury
    @bachirelkhoury
    @kalyankuramana thanks I will check it out. Not many examples out there about that which seems strange given it looks like a great API framework.
    Bachir El Khoury
    @bachirelkhoury

    Using x_token_auth seems to register ok and return the token, only this setting doesn't generate the login, logout views. Maybe I'm missing something, or am I support to implement login/logout myself?
    thanks

    securedBy: [x_token_auth]

    https://github.com/ramses-tech/ramses/blob/51b2094a2dca4cacd37f3ce2466e191b0045549f/ramses/auth.py#L155-L158

    x_ticket_auth does:

    securedBy: [x_ticket_auth]

    https://github.com/ramses-tech/ramses/blob/51b2094a2dca4cacd37f3ce2466e191b0045549f/ramses/auth.py#L97-L100

    Bachir El Khoury
    @bachirelkhoury
    Ok I see, I needed to POST /auth/token to login.
    all good then, thanks.
    POST http://localhost:6543/api/auth/token
    {"login":"someUser", "password":"password"}
    
    {
      "headers": [
        [
          "WWW-Authenticate",
          "ApiKey somUser:3ad6f8ab388d4be2b20a81b6c2fcc3dd"
        ]
      ],
      "timestamp": "2016-10-11T04:22:57Z",
      "title": "OK",
      "status_code": 200,
      "explanation": "",
      "message": "Token claimed"
    }
    Jonathan Stoikovitch
    @jstoiko

    disclaimer: token auth in nefertari and ramses should be considered alpha. it is not documented nor tested.

    feel free to try what's already in place, improve it and make a PR, we can include it in the next release.

    Bachir El Khoury
    @bachirelkhoury
    cool thanks @jstoiko
    Charlene Gilbert
    @gilbcharlene
    how do I configure elasticsearch.hosts if my elasticsearch has ssl enabled and credentials directly in the host url?
    I checked nefertari/elasticsearch.py and it looks like it's splitting the elasticsearch.hosts string with the ':' delimeter which is incorrect
    Charlene Gilbert
    @gilbcharlene
    This is what I have in local.ini
    elasticsearch.host = localhost
    elasticsearch.port = 2394
    #elasticsearch.hosts = localhost:2394
    elasticsearch.http_auth = user:secret
    elasticsearch.use_ssl = True
    elasticsearch.verify_certs = True
    Charlene Gilbert
    @gilbcharlene
    despite that I see that nefertari is making requests using the http protocol and not https
    Charlene Gilbert
    @gilbcharlene
    I made a post at stackoverflow with more information on the error: http://stackoverflow.com/questions/40073938/how-to-configure-elasticsearch-to-use-ssl-with-basic-auth
    Charlene Gilbert
    @gilbcharlene
    I was looking at nefertari/elasticsearch.py and it appears that params is an empty dictionary when it should contain the other settings from local.ini (-hosts). I am going to try and submit a pull request
    bigmodem
    @bigmodem
    I want to use polymorphic_query and when I send requests like:
     http --session=admin :6543/api/customers,nodes
    I always get error, is it a bug?
    And when I use aggregations like:
    http --session=admin :6543/api/customers _aggs.my_agg.terms.field==state
    I found the _aggs parameter can't be used to implement nested aggregations like:
    bigmodem
    @bigmodem
    {
      "aggs": {
        "colors": {
          "terms": {
            "field": "color"
          },
          "aggs": {
            "avg_price": {
              "avg": {
                "field": "price"
              }
            }
          }
        }
      }
    }
    So I want to use body parameter to get my nested aggregations, my command is
     http --session=admin :6543/api/customers  body=="{_source:false,aggs:{types:{terms:{field:\"type\"},aggs:{avg_id:{avg:{field:\"customer_id\"}}}}}}"
    But I always get documents from server instead of a aggregation!
    Most of important I found I can't change ES mappings in my schema
    bigmodem
    @bigmodem
    There is only a _db_settings in schema field and I think there would be a _es_mappings for each field in next version.
    I think all nefertari or nefertari_sqa must be improved to solve above issues.
    bigmodem
    @bigmodem
    I use python 3.5.2 in OS X 10.11.6
    nefertari (0.7.0)
    nefertari-sqla (0.4.2)
    pyramid (1.7.3)
    pyramid-jinja2 (2.6.2)
    pyramid-sqlalchemy (1.6)
    pyramid-tm (1.0)
    ramses (0.5.3)
    SQLAlchemy (1.1.2)
    SQLAlchemy-Utils (0.32.9)
    nekopep
    @nekopep
    hello
    I've just installed ramses and tryed the pyramid scaffold associated
    I've installed mongodb and elastcisearch, I manage to run the example
    but I can't manage to POST to the api :/
    when I run:
    http POST 192.168.1.7:6543/api/items name=banane description='bananes jaunes'
    I got:
    "message": "Bad or missing param '_asdict'",
    Any idea??
    Robert
    @RHSman
    Hi, Awesome product!! I'm trying to add a unique requirement for my post inserts. I need the unique key to be lift_name, resort. I am sure its nice and easy but can't find docs and on _db_settings. Thanks Rob
    Robert
    @RHSman
    and I also need to add geo data. Is there a way to do this to make the most of elasticsearch's geo spatial search? Thanks
    GHApps
    @GHapps
    Hi there - have a couple of questions of the architecture of this product. 1) Can it be plugged in to an existing Elasticsearch index and provide an api for it. 2) Why do the tutorial seem to need both postgressql and elasticsearch? e.g https://www.elastic.co/blog/make-an-elasticsearch-powered-rest-api-for-any-data-with-ramses
    Jonathan Stoikovitch
    @jstoiko

    @RHSman you might want to set your lift_name as a primary key:https://ramses.readthedocs.io/en/stable/fields.html#primary-key

    re: ES geo data, it is not supported but it shouldn't be too hard to add. if you have some spare time and would like to implement it, feel free to submit a PR

    Jonathan Stoikovitch
    @jstoiko
    @GHapps 1) it could but it would require to write a RAML file that describes the exact same schemas/mappings as your ES index. one way to achieve this would be to create a Ramses app, and compare the ES index generated by Ramses to the existing ES index. And then step-by-step, try to reproduce the same mappings. another way would be to write you RAML file and build your Ramses app without caring too much about the old EX index and write a script that takes the data in your old index and POSTs it to your new API... I am sure there are other ways.
    2) currently Postgres (or Mongodb) is used for writes and Elasticsearch for reads, that's the way it is designed. there has been some discussions and work around decoupling the two and allowing reads/writes to Postgres only as well as r/w to Elasticsearch only for some scenarios, it mights makes sense actually. However that work has never been completed. Feel free to take a look though, this work is in a branch of Neferari (the lower-level API framework layer): https://github.com/ramses-tech/nefertari/tree/engine-refactor
    Jerome Krieg
    @miaoulafrite
    Hi guys! Congratulations for this nice project, just came across it
    I'm quite new to python, so my question may sound dumb, pardon me in advance. I was wondering why you've chosen Pyramid and not Falcon (https://falconframework.org) - is that intended?
    Robert
    @RHSman
    @jstoiko The ability to choose a backend (pg or ES) I think would be really useful, I have had to 'manipulate' ES mappings to be for my use case (mostly identifying key records where I don't have an ID as an example). Mappings to ES, as a hack I override the mapping part as its just too limiting and then run a mapping against the indexes. If I have get time I'll get to that Mappings component as it really adds another layer of control via the RAML.
    Re key: I set the lift_name as primary but what if I have a lift with same name but different resort? I have fixed my issue in the workflow but again, super useful at the RAML level.
    GEO: Yes, I'll get on that as it really takes ES as a backend service to the next level!!!