使用Heroku Toolbelt旋转Postgres和Redis凭据非常简单https://blog.heroku.com/archives/2012/7/17/rotate_database_credentials_on_heroku_postgres_
理想情况下,我需要使用API执行此操作。有办法吗?我无法在我的生产环境中安装工具带并回退到 <script>
navigator.serviceWorker.register("../service.js", {
scope: "myScope"
});
</script>
或反引号来调用它,因为;具有讽刺意味的是,它正在Heroku上运行。
编辑:实际上,有一种方法可以使用此buildpack在Heroku中运行Toolbelt,但我更喜欢通过API本地执行它。
答案 0 :(得分:0)
该平台API目前不会为此公开端点。目前,您的选择仅限于CLI / buildpack或通过这些相应数据存储的仪表板。
答案 1 :(得分:0)
没有公共API可以做到这一点。
但是,可以做到......
首先,您需要数据库的唯一名称。您可以通过它的附件名称/别名来查找,默认情况下通常为DATABASE
或HEROKU_POSTGRES_[COLOR]
,或者您可能已使用heroku addons:{create,attach} --as NAME
指定的任何自定义。默认情况下使用DATABASE
的别名,以下是使用curl
和jq
获取该地址的方式:
$ curl -H "Authorization: Bearer $API_KEY" \
-H "Accept: application/vnd.heroku+json; version=3" \
https://api.heroku.com/apps/$APP_NAME/addon-attachments/DATABASE \
| jq .addon.name
"postgresql-colorful-12345"
然后,假设该名称已保存在$DBNAME
中,您可以像这样旋转其凭据:
$ curl -X POST -u "x:$API_KEY" \
https://$DOMAIN/client/v11/databases/$DBNAME/credentials_rotation
{"status":"ok","url":"[REDACTED]","message":"Password reset."}
对于付费方案, $DOMAIN
为postgres-api.heroku.com
,对于免费/爱好计划,postgres-starter-api.heroku.com
为IIRC。
此API可能会随时更改,因为它被视为私有API,因此决定使用它。