Skip to content

Commit 65a0742

Browse files
author
SUY
committed
elevenlabs, firecrawl: drop modulex_key auth schema (api_key only)
Both integrations now ship a single api_key (bring-your-own-key) auth schema. Tool code is unchanged — it was already auth-agnostic, taking the same api_key: str parameter regardless of which schema fed it. README, module docstring, and manifest-shape tests updated to match.
1 parent 218e9e1 commit 65a0742

8 files changed

Lines changed: 21 additions & 46 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
1616
available teams. UUID values skip the lookup entirely (no extra
1717
round-trip).
1818

19+
### Changed
20+
21+
- `elevenlabs`, `firecrawl` — dropped the `modulex_key` managed-key
22+
auth schema; both now ship a single `api_key` (bring-your-own-key)
23+
schema. The tool code is unchanged (already auth-agnostic — the
24+
injected credential is the same `api_key: str` parameter either way).
25+
1926
## [0.10.0] - 2026-06-19
2027

2128
### Changed (schema)

src/modulex_integrations/tools/elevenlabs/README.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,9 @@ isolation, subscription, and Conversational-AI agents.
66

77
## Authentication
88

9-
- **Paired `api_key + modulex_key` schemas** (both Bearer-authed —
10-
the runtime picks which credential to inject; tool code is
11-
auth-agnostic).
9+
- **Single `api_key` schema** (Bearer-authed, bring-your-own-key).
1210
- `api_key` env: `ELEVENLABS_API_KEY` (sensitive).
13-
- `modulex_key` env: none (managed by ModuleX).
14-
- Both `test_endpoint`s hit `GET /v1/user/subscription` and assert
11+
- The `test_endpoint` hits `GET /v1/user/subscription` and asserts
1512
the `tier` field.
1613

1714
## Runtime convention

src/modulex_integrations/tools/elevenlabs/manifest.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
ApiKeyAuthSchema,
77
EnvVar,
88
IntegrationManifest,
9-
ModulexKeyAuthSchema,
109
ParameterDef,
1110
SuccessIndicators,
1211
TestEndpoint,
@@ -321,17 +320,5 @@ def _test_endpoint(placeholder: str) -> TestEndpoint:
321320
],
322321
test_endpoint=_test_endpoint("api_key"),
323322
),
324-
ModulexKeyAuthSchema(
325-
display_name="ModuleX Managed Key",
326-
description=(
327-
"Use ModuleX's managed API keys with usage tracked against "
328-
"your weekly credit limit"
329-
),
330-
setup_environment_variables=[],
331-
# The modulex runtime resolves the real API key from the
332-
# modulex_key_pool when this schema is used; {api_key} is
333-
# substituted server-side by the credential resolver.
334-
test_endpoint=_test_endpoint("api_key"),
335-
),
336323
],
337324
)

src/modulex_integrations/tools/elevenlabs/tests/test_elevenlabs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ def test_manifest_exposes_15_actions(self) -> None:
6161
def test_manifest_actions_match_tools_tuple(self) -> None:
6262
assert {a.name for a in manifest.actions} == {t.name for t in TOOLS}
6363

64-
def test_manifest_has_paired_auth(self) -> None:
64+
def test_manifest_has_api_key_auth(self) -> None:
6565
types = {a.auth_type for a in manifest.auth_schemas}
66-
assert types == {"api_key", "modulex_key"}
66+
assert types == {"api_key"}
6767

6868

6969
@pytest.mark.asyncio

src/modulex_integrations/tools/elevenlabs/tools.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
"""ElevenLabs LangChain ``@tool`` functions.
22
33
Wraps the synchronous ``elevenlabs`` SDK inside async tool functions.
4-
Key-based runtime convention (``api_key: str`` first arg) with paired
5-
``api_key + modulex_key`` schemas (both Bearer-authed; the runtime
6-
picks which credential to inject).
4+
Key-based runtime convention (``api_key: str`` first arg) with a single
5+
Bearer-authed ``api_key`` schema (bring-your-own-key).
76
87
15 actions across TTS, STT, sound effects, voice library / cloning /
98
isolation, subscription, and Conversational-AI (agents + knowledge

src/modulex_integrations/tools/firecrawl/README.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,13 @@ status polling, LLM-based structured extraction, and batch scraping.
77

88
## Authentication
99

10-
### API Key (Bearer) — and ModuleX Managed Key
10+
### API Key (Bearer)
1111

12-
- **First integration with paired `api_key + modulex_key` schemas.**
13-
Both schemas auth identically via `Authorization: Bearer <key>`;
14-
the runtime picks one based on which credential the operator
15-
configures. The tool code is auth-agnostic — `api_key: str` is the
16-
parameter regardless of which schema fed it.
12+
- **Single `api_key` schema** (bring-your-own-key), authed via
13+
`Authorization: Bearer <key>`. `api_key: str` is the tool parameter.
1714
- API-key env var: `FIRECRAWL_API_KEY`.
18-
- Both schemas' `test_endpoint` hits POST `/scrape` with
19-
`example.com` to validate the credential cheaply.
15+
- The `test_endpoint` hits POST `/scrape` with `example.com` to
16+
validate the credential cheaply.
2017

2118
## Tools
2219

src/modulex_integrations/tools/firecrawl/manifest.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
ApiKeyAuthSchema,
77
EnvVar,
88
IntegrationManifest,
9-
ModulexKeyAuthSchema,
109
ParameterDef,
1110
SuccessIndicators,
1211
TestEndpoint,
@@ -310,16 +309,5 @@ def _scrape_test_endpoint(description: str) -> TestEndpoint:
310309
"Validates API key with minimal scrape of example.com"
311310
),
312311
),
313-
ModulexKeyAuthSchema(
314-
display_name="ModuleX Managed Key",
315-
description=(
316-
"Use ModuleX's managed API keys with usage tracked against "
317-
"your weekly credit limit"
318-
),
319-
setup_environment_variables=[],
320-
test_endpoint=_scrape_test_endpoint(
321-
"Validates system API key with minimal scrape of example.com"
322-
),
323-
),
324312
],
325313
)

src/modulex_integrations/tools/firecrawl/tests/test_firecrawl.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ def test_manifest_exposes_seven_actions(self) -> None:
4141
def test_manifest_actions_match_tools_tuple(self) -> None:
4242
assert {a.name for a in manifest.actions} == {t.name for t in TOOLS}
4343

44-
def test_manifest_has_paired_api_key_and_modulex_key_auth(self) -> None:
44+
def test_manifest_has_api_key_auth(self) -> None:
4545
types = {a.auth_type for a in manifest.auth_schemas}
46-
assert types == {"api_key", "modulex_key"}
46+
assert types == {"api_key"}
4747

48-
def test_both_test_endpoints_post_to_scrape(self) -> None:
48+
def test_test_endpoints_post_to_scrape(self) -> None:
4949
for auth in manifest.auth_schemas:
5050
assert auth.test_endpoint is not None
5151
assert auth.test_endpoint.method == "POST"

0 commit comments

Comments
 (0)