diff --git a/.antigravity-plugin/plugin.json b/.antigravity-plugin/plugin.json index 240cea5..94313ae 100644 --- a/.antigravity-plugin/plugin.json +++ b/.antigravity-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "back4app", "displayName": "Back4app", - "version": "0.1.18", + "version": "0.1.19", "description": "Deploy anything that runs in a container, from web apps and websites to APIs and backends, and get a live HTTPS address. No account needed to start.", "suggestedPrompts": [ "Deploy this folder to Back4app", diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 0b3179d..9a223c4 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "back4app", "displayName": "Back4app", - "version": "0.1.18", + "version": "0.1.19", "description": "Deploy anything that runs in a container, from web apps and websites to APIs and backends, and get a live HTTPS address. No account needed to start.", "author": { "name": "Back4app", diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json new file mode 100644 index 0000000..cc024fd --- /dev/null +++ b/.codex-plugin/plugin.json @@ -0,0 +1,48 @@ +{ + "name": "back4app", + "version": "0.1.19", + "description": "Deploy anything that runs in a container, from web apps and websites to APIs and backends, and get a live HTTPS address. No account needed to start.", + "author": { + "name": "Back4app", + "email": "community@back4app.com", + "url": "https://www.back4app.com" + }, + "homepage": "https://www.back4app.com", + "repository": "https://github.com/back4app/back4app-plugin", + "license": "MIT", + "keywords": [ + "back4app", + "deploy", + "hosting", + "containers", + "docker", + "server", + "api", + "mcp" + ], + "skills": "./skills/", + "mcpServers": "./.mcp.json", + "interface": { + "displayName": "Back4app", + "shortDescription": "Deploy anything that runs in a container and get a live HTTPS address.", + "longDescription": "Deploy anything that runs in a container, from web apps and websites to APIs and backends, and get a live HTTPS address. Follow builds, read logs, set environment variables and roll back through the Back4app MCP server. No account needed to start: choose Continue without an account when you connect.", + "developerName": "Back4app", + "category": "Developer Tools", + "capabilities": [ + "Interactive", + "Write" + ], + "websiteURL": "https://www.back4app.com", + "privacyPolicyURL": "https://www.back4app.com/privacy.pdf", + "termsOfServiceURL": "https://www.back4app.com/terms-of-service.pdf", + "defaultPrompt": [ + "Deploy this folder to Back4app.", + "Why did my last Back4app deployment fail?", + "Roll back my last Back4app deployment." + ], + "brandColor": "#10203A", + "composerIcon": "./assets/back4app.png", + "logo": "./assets/back4app.png", + "screenshots": [] + } +} diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json index 2293145..90bb688 100644 --- a/.cursor-plugin/plugin.json +++ b/.cursor-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "back4app", - "version": "0.1.18", + "version": "0.1.19", "description": "Deploy anything that runs in a container, from web apps and websites to APIs and backends, and get a live HTTPS address. No account needed to start.", "author": { "name": "Back4app" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a339085 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +name: CI + +on: + pull_request: + push: + branches: [main] + +jobs: + manifests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: JSON files parse, and every manifest has the same version + run: | + python3 - <<'PY' + import json, pathlib, subprocess, sys + files = subprocess.run(["git", "ls-files", "*.json"], capture_output=True, text=True, check=True).stdout.split() + for f in files: + json.loads(pathlib.Path(f).read_text()) + manifests = [ + ".claude-plugin/plugin.json", + ".codex-plugin/plugin.json", + ".cursor-plugin/plugin.json", + ".plugin/plugin.json", + ".kimi-plugin/plugin.json", + ".antigravity-plugin/plugin.json", + "gemini-extension.json", + ] + versions = {f: json.loads(pathlib.Path(f).read_text())["version"] for f in manifests} + if len(set(versions.values())) != 1: + sys.exit(f"Versions differ: {versions}") + print(f"{len(files)} JSON files parse; version {versions[manifests[0]]} in {len(manifests)} manifests") + PY + - name: Every file a manifest points to exists + run: | + python3 - <<'PY' + import json, pathlib, sys + missing = [] + for f, keys in { + ".claude-plugin/plugin.json": ["icon"], + ".cursor-plugin/plugin.json": ["logo", "skills"], + ".antigravity-plugin/plugin.json": ["logo"], + ".codex-plugin/plugin.json": ["skills", "mcpServers", "interface.logo", "interface.composerIcon"], + }.items(): + data = json.loads(pathlib.Path(f).read_text()) + for key in keys: + value = data + for part in key.split("."): + value = value[part] + if not pathlib.Path(value).exists(): + missing.append(f"{f}: {key} -> {value}") + if missing: + sys.exit("Missing: " + "; ".join(missing)) + print("All paths exist") + PY diff --git a/.kimi-plugin/plugin.json b/.kimi-plugin/plugin.json index 8512cd3..eaf9201 100644 --- a/.kimi-plugin/plugin.json +++ b/.kimi-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "back4app", - "version": "0.1.18", + "version": "0.1.19", "description": "Deploy anything that runs in a container, from web apps and websites to APIs and backends, and get a live HTTPS address. No account needed to start.", "keywords": [ "back4app", @@ -12,7 +12,7 @@ "api", "mcp" ], - "homepage": "https://github.com/back4app/back4app-plugin", + "homepage": "https://www.back4app.com", "license": "MIT", "author": { "name": "Back4app", diff --git a/.plugin/plugin.json b/.plugin/plugin.json index 27d21df..a472dd3 100644 --- a/.plugin/plugin.json +++ b/.plugin/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "back4app", - "version": "0.1.18", + "version": "0.1.19", "description": "Deploy anything that runs in a container, from web apps and websites to APIs and backends, and get a live HTTPS address. No account needed to start.", "author": { "name": "Back4app", diff --git a/assets/back4app.png b/assets/back4app.png index 23d5432..b817651 100644 Binary files a/assets/back4app.png and b/assets/back4app.png differ diff --git a/gemini-extension.json b/gemini-extension.json index f549419..5f5cc53 100644 --- a/gemini-extension.json +++ b/gemini-extension.json @@ -1,6 +1,6 @@ { "name": "back4app", - "version": "0.1.18", + "version": "0.1.19", "description": "Deploy anything that runs in a container, from web apps and websites to APIs and backends, and get a live HTTPS address. No account needed to start.", "mcpServers": { "back4app": {