Повторное использование паролей из ~ / .couchapp.conf для различных приложений .couchapprc - PullRequest
3 голосов
/ 17 августа 2011

В руководстве по http://couchapp.org/page/couchapp-config говорится, что вы можете хранить пароли в ~/.couchapp.conf.Тем не менее, db url - это адрес конкретной базы данных.Если в разных базах данных есть два приложения, скажем, /db1 и /db2, то у нас должно быть это:

{
  "env" : {
    "default" : {
      "db" : "http://admin:pass@localhost:5984/db1"
    }
  }
}

и:

{
  "env" : {
    "default" : {
      "db" : "http://admin:pass@localhost:5984/db2"
    }
  }
}

, но я надеваюне вижу, как это можно объединить в одно (если вместо default хакер не используется для добавления одного «окружения» на БД, например, default-db1 и default-db2 и т. д.).

Как можноЯ объединяю это в одно, поэтому, например, я указываю db1 и db2 в .couchapprc файлах в соответствующих приложениях или что-то подобное?

Ответы [ 2 ]

2 голосов
/ 18 августа 2011

Я не могу проверить это прямо сейчас, но я думаю, что вы должны просто объединить две среды, дав им разные имена (например, "env1" и "env2"):

{
  "env" : {
    "env1" : {
      "db" : "http://admin:pass@localhost:5984/db1"
    },
    "env2" : {
      "db" : "http://admin:pass@localhost:5984/db2"
    }
  }
}

Затем передатьсреда в качестве последнего аргумента командной строки: couchapp push env1.

Однако я думаю, что самое простое решение - поместить информацию в .couchapprc в корень проекта, а затем добавить ее в .gitignore, * 1009.* или что вы используете для контроля версий.

1 голос
/ 13 января 2012

Глядя в dist-packages/couchapp/config.py, метод Config.load делает это посередине:

new_conf = util.read_json(p, use_environment=True,
    raise_on_error=True)

Примечание use_environment=True. Это не идеальная вещь, так как она не учитывает переменные в глобальном файле ~ / .couchapp.conf, но дает хотя бы обходной путь - просто определите необходимые переменные среды, скажем, COUCHAPP_USER и COUCHAPP_PASS, и используйте их в файле .couchapprc:

"db" : "http://$COUCHAPP_USER:$COUCHAPP_PASS@localhost:5984/db1"

Теперь вы можете запустить couchapp push:

$ export COUCHAPP_USER=testadmin 
$ export COUCHAPP_PASS=pass 
$ couchapp push

и все будет работать как положено.

...