user() | account.me()['user'] | me() は applications と databases も返します |
all_apps() | account.me()['applications'] | |
app(app_id) | apps.get(app_id) | GET /apps/{id} になり、workspace の ID '<appId>-<workspaceId>' でも動作します |
user_snapshots(scope) | account.snapshots(*, scope=None) | scope はキーワード専用。各項目は API の version_id と署名付き url を持ちます |
service_status() | service.status() | |
upload_app(File(path)) | apps.create(path) | ディスクからストリーミングします。AppCreated を返します (domain は Web サイトの完全なホストで、subdomain はありません) |
delete_app(id) | apps.delete(id) | None を返します |
all_apps_status() | apps.status_all(*, workspace_id=None) | 停止中のアプリも除外されなくなりました |
app_status(id) | apps.status(id, *, raw=False) | raw=True (キーワード専用) で数値を返します |
start_app / stop_app / restart_app | apps.start / apps.stop / apps.restart | None を返します |
get_logs(id) | apps.logs(id) | str を返します |
app_metrics(id) | apps.metrics(id) | |
realtime(id) (各 data: 行の非同期ジェネレーター。可能な場合は JSON としてデコード) | apps.realtime(id) | 生の data テキストを持つ {'event', 'data', 'id'} のイテレーター。ログには stream/line、ステータスイベントにはマージされた status が加わります。自動的に再接続します (動作の変更を参照)。ストリームには読み取りタイムアウトがないため (v4 はデータなしで 90 秒経つと諦めていました)、close() で停止してください |
all_domains() | apps.domains() | |
load_balancers() | apps.load_balancers() | |
commit(id, File(path)) | apps.commit(id, file, *, path=None, filename=None) | キーワード専用の path = 保存先ディレクトリ。filename は zip 以外のファイルの名前 (bytes のデフォルトは commit.zip) |
github_integration(id, access_token) | apps.deploys.set_webhook(id, access_token) | |
last_deploys(id) | apps.deploys.list(id) | イベントには source、branch、files が含まれます。失敗した deploy は state='error' と code、message で終わります |
current_app_integration(id) | apps.deploys.current(id) | webhook の文字列ではなく {'app'?, 'webhook'?} を返します |
get_app_envs / set_app_envs / overwrite_app_envs / delete_app_envs | apps.envs.get / set / replace / delete | |
clear_app_envs(id) | apps.envs.replace(id, {}) | |
app_files_list(id, path) | apps.files.list(id, path=None) | エントリは API の FileEntry です (計算された path/app_id はありません)。存在しないディレクトリは [] を返す代わりに 404 FILE_NOT_FOUND を送出し、ブロックされたディレクトリは 403 BLOCKED_PATH になります |
read_app_file(id, path) → BytesIO | apps.files.read(id, path) → bytes | base64 エンコード (?encoding=base64) で取得してデコードします。10 MB を超えると 413 FILE_TOO_LARGE |
create_app_file(id, File(...), path) | apps.files.write(id, path, content) | str はテキストとして、bytes は base64 エンコードで送信されます (バイナリセーフ)。パスはそのまま送信されます (余分な / は付きません)。空の内容 ('' または b'') は空のファイルを作成します |
move_app_file(id, origin, dest) | apps.files.move(id, path, to) | |
delete_app_file(id, path) | apps.files.delete(id, path) | |
snapshot(id) → Snapshot | apps.snapshots.create(id) | 202 の場合は例外を送出せずに {'pending': True} を返します。その後は list をポーリングし、再作成は決してしないでください |
all_app_snapshots(id) | apps.snapshots.list(id) | 各項目は API の version_id と署名付きダウンロード url を、送られたまま持ちます |
restore_snapshot('app', id, snapshot_id, version_id) | apps.snapshots.restore(id, name, version_id) | list の項目の name と version_id |
restore_snapshot('database', id, ...) | databases.snapshots.restore(id, name, version_id) | list の項目の name と version_id |
Snapshot.download(path) | client.download_snapshot(url, dest) | zip そのものをストリーミングします (v4 は別の zip で包んでいました) |
domain_analytics(id, start=, end=, ...) | apps.network.analytics(id, start, end, *, country=, ...) | start/end は API で必須です。フィルターはキーワード専用です |
network_errors(id, start, end, include_4xx) / network_logs / network_performance | apps.network.errors(id, start, end, *, include_4xx=False) / logs / performance | analytics、errors、performance はデータのない期間では None を返します |
dns_records(id) | apps.network.dns(id) | |
set_custom_domain(id, custom_domain) | apps.network.set_domain(id, domain) | v4 はボディを送信していませんでした |
purge_cache(id) | apps.network.purge_cache(id) | |
link_github_app(id, repository_name, repository_branch) | apps.deploys.link_github_app(id, repository, branch) | API キーで動作するようになりました (スコープ apps:deploy)。生の dict ではなく LinkedRepository ({id, full_name, branch}) を返します。GitHub App のインストールがない場合は 403 GITHUB_NOT_CONNECTED |
unlink_github_app(id) | apps.deploys.unlink_github_app(id) | None を返します。何も連携されていない場合は 400 GIT_NOT_CONFIGURED |
create_database(name, memory, type, version=None) | databases.create(name, type=, version=, memory=) | キーワード専用。version は必須です ('8' のようなメジャーバージョンでも可) |
get_database_info(id) | databases.get(id) | |
edit_database(id, name, memory) | databases.update(id, name=, ram=) | v4 は API が無視する memory を送信していました |
delete_database / start_database / stop_database | databases.delete / start / stop | |
get_database_status(id) | databases.status(id, *, raw=False) | |
all_databases_status() | databases.status_all() | |
database_metrics(id) | databases.metrics(id) | |
get_database_certificate(id) → Certificate | databases.certificate(id) → base64 の str | base64.b64decode(...) で PEM が得られます |
reset_database_password(id) | databases.reset_credentials(id, 'password') | 新しいパスワードを返します |
reset_database_certificate(id) | databases.reset_credentials(id, 'certificate') | '' を返します |
all_database_snapshots(id) / database_snapshot(id) | databases.snapshots.list(id) / create(id) | アプリと同様に、各項目は version_id と url を持ちます |
create_workspace(name) | workspaces.create(name) | 1 回のリクエストで {id, name} を返します |
all_workspaces() / get_workspace(id) | workspaces.list() / workspaces.get(id) | v4 は各アプリの id を複合形式 '<appId>-<workspaceId>' に書き換えていました。v5 は API の素の ID を返すため、自分で組み立ててください: f"{app['id']}-{workspace['id']}" |
delete_workspace / leave_workspace | workspaces.delete / workspaces.leave | |
add_member_to_workspace(ws, invite_code, permissions) | workspaces.members.add(ws, code, group) | |
modify_member_permissions(ws, user_id, permissions) | workspaces.members.update(ws, member_id, group) | |
remove_member_from_workspace(ws, user_id) | workspaces.members.remove(ws, member_id) | |
get_invite_code() | workspaces.members.invite_code() | |
add_app_to_workspace / remove_app_from_workspace | workspaces.apps.add / workspaces.apps.remove | |
| — | ai.chat(request) | 新規。request は OpenAI 形式のボディです ({'messages': [...], 'model': ...}) |
client.api_key | 削除 | キーへの参照は自分で保持してください |
on_request(endpoint)、Application.capture(endpoint) | 削除 | 概要のリスナーの行を参照してください |
squarecloud.utils.ConfigFile | 削除 | squarecloud.app ファイルは自分で書いてください (KEY=value の行) |