ETL: multi-tenant token management for high-volume data pipelines
还没有人认领这个 Issue。
评估
调研方向
Start by reading the SDK's existing OAuth token creation flow and CacheInterface to understand their contracts. Then determine whether token pooling belongs in the core SDK and how expiry should be represented; the issue leaves both decisions open. Done means an agreed design supports per-tenant token reuse and refresh before jobs start.
由索引模型根据 Issue 内容生成。
描述
Problem
In multi-tenant SaaS platforms, each tenant has its own Openapi credentials. Running ETL jobs for hundreds of tenants simultaneously requires generating, caching, and refreshing tokens per-tenant — something the current SDK does not model.
Current workaround
foreach ($tenants as $tenant) {
$oauth = new OauthClient($tenant['username'], $tenant['apikey']);
$token = json_decode($oauth->createToken($scopes), true)['token'];
// Problem: no TTL tracking, no reuse across jobs, no central cache
$client = new Client($token);
runEtlJob($tenant, $client);
}
What would help
A TokenPool or TokenStore abstraction that:
- Caches tokens per-tenant until near expiry
- Refreshes automatically before a job starts
- Plugs into the existing
CacheInterface
$pool = new TokenPool($oauthClient, cache: new RedisCache($redis));
$client = new Client(tokenPool: $pool->forTenant($tenantId));
Open questions
- Is
TokenPoolwithin scope for the core SDK or a separate package? - Should it integrate with the existing
Cache\CacheInterfaceor define its own contract? - How should token expiry be tracked — store the TTL alongside the token?
- 主要语言
- PHP
- 星标
- 20
- 派生
- 3
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
openapi/openapi-php-sdk 的其他 Issue
-
Improve PHPDoc Consistency Across the Codebase可能重新可做 @Seraphim200001 于 138 天前认领,目前没有进行中的 PR。 未关闭
难度 4/5 3-5 天 新手友好度 48/100
openapi/openapi-php-sdk#36 · 3 条评论 ·
-
enhancement help wanted
难度 5/5 一周以上 新手友好度 25/100
openapi/openapi-php-sdk#34 ·
-
good first issue question
难度 5/5 一周以上 新手友好度 35/100
openapi/openapi-php-sdk#33 · 2 条评论 ·
-
enhancement
难度 5/5 一周以上 新手友好度 25/100
openapi/openapi-php-sdk#32 ·
-
help wanted question
难度 5/5 一周以上 新手友好度 25/100
openapi/openapi-php-sdk#31 ·
查看 openapi/openapi-php-sdk 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复
-
Do not throw `WordPress.Security.EscapeOutput.OutputNotEscaped` on `apply_shortcodes()`可能已有人在做 @tbradsha 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 62/100
landsman/adminer-desktop#120 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
components-web-app/docs#227 ·
-
难度 1/5 1 小时以内 新手友好度 85/100