Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/brightbeanxyz/brightbean-studio
/ types & classes
Types & classes
668 in github.com/brightbeanxyz/brightbean-studio
⨍
Functions
3,156
◇
Types & classes
668
↳
Endpoints
120
↓ 55 callers
Class
JsonRpcError
Raised inside a handler to translate into a JSON-RPC error envelope. Handlers raise this for any user-facing failure (bad params, permission
apps/mcp/protocol.py:50
↓ 52 callers
Class
PublishError
Post publishing failed.
providers/exceptions.py:45
↓ 31 callers
Class
TikTokProvider
TikTok Content Posting API provider using OAuth 2.0.
providers/tiktok.py:97
↓ 27 callers
Class
OAuthTokens
providers/types.py:41
↓ 25 callers
Class
FacebookProvider
Facebook Graph API v25.0 provider.
providers/facebook.py:66
↓ 23 callers
Class
PublishResult
providers/types.py:61
↓ 22 callers
Class
APIError
Generic API error from the platform.
providers/exceptions.py:49
↓ 22 callers
Class
OAuthError
OAuth flow failure (invalid code, denied access, etc.).
providers/exceptions.py:24
↓ 20 callers
Class
AccountProfile
providers/types.py:51
↓ 17 callers
Class
PublishEngine
Orchestrates the publishing of scheduled posts.
apps/publisher/engine.py:99
↓ 16 callers
Class
PublishContent
Content payload passed to publish_post().
providers/types.py:132
↓ 15 callers
Class
AccountMetrics
providers/types.py:88
↓ 15 callers
Class
PostMetrics
providers/types.py:74
↓ 15 callers
Class
WorkspaceScopedManager
Manager that auto-filters queries by workspace_id. Usage: MyModel.objects.for_workspace(workspace_id).all()
apps/common/managers.py:18
↓ 15 callers
Class
_SecureClient
Forces ``secure=True`` so the bearer HTTPS guard doesn't 401 every call.
apps/mcp/tests/test_oauth_auth.py:28
↓ 13 callers
Class
Tool
apps/mcp/tools.py:23
↓ 12 callers
Class
InternalClient
HMAC-signed client for Intelligence's /internal/v1/. Construct without arguments, pulls config from Django settings. Methods raise typed exce
apps/intelligence/services/client.py:75
↓ 12 callers
Class
RateLimitConfig
providers/types.py:124
↓ 9 callers
Class
MediaAsset
A media file (image, video, GIF) uploaded to a workspace's media library. Stores the original file plus processed variants for different platform
apps/media_library/models.py:73
↓ 8 callers
Class
InboxSyncEngine
Syncs inbox messages from all connected social accounts.
apps/inbox/tasks.py:35
↓ 7 callers
Class
CommentResult
providers/types.py:68
↓ 7 callers
Class
InboxMessage
providers/types.py:106
↓ 7 callers
Class
OrgScopedManager
Manager that auto-filters queries by organization_id. Usage in views/middleware: set the organization on the manager before querying:
apps/common/managers.py:6
↓ 7 callers
Class
PlatformPost
A per-platform variant of a Post. Created for each selected social account when composing. Holds optional caption/media overrides and — cruci
apps/composer/models.py:331
↓ 7 callers
Class
YouTubeProvider
YouTube Data API v3 provider using Google OAuth 2.0.
providers/youtube.py:42
↓ 6 callers
Class
EncryptedTextField
A TextField that encrypts its value at rest using AES-256-GCM.
apps/common/encryption.py:61
↓ 6 callers
Class
Post
A piece of content created in the composer. A Post holds the shared/base content. PlatformPost children hold per-platform overrides **and the
apps/composer/models.py:216
↓ 6 callers
Class
RateLimitState
Track API rate limit state per social account per platform. Updated from API response headers after each call.
apps/publisher/models.py:42
↓ 6 callers
Class
ReplyResult
providers/types.py:118
↓ 6 callers
Class
ServiceUnavailable
5xx / network error, transient.
apps/intelligence/services/exceptions.py:41
↓ 6 callers
Class
_SecureClient
Django test client that forces every request to ``secure=True``. Django's ``Client.get/post`` always pass an explicit ``secure=False`` to ``g
apps/api/tests/test_routers.py:112
↓ 5 callers
Class
InstagramProvider
Instagram Graph API provider (via Facebook Graph API v25.0).
providers/instagram.py:71
↓ 5 callers
Class
LinkedInCompanyProvider
LinkedIn provider scoped to Company Page posting.
providers/linkedin_company.py:16
↓ 5 callers
Class
_SecureClient
apps/mcp/tests/test_transport.py:37
↓ 5 callers
Class
_StubApps
Stand-in for the ``apps`` arg Django migrations get. The migration only calls ``apps.get_model("api_keys", "ApiKey")``, so we return the live
apps/api_keys/tests/test_migration_0002.py:114
↓ 4 callers
Class
PlatformCredentialAdminForm
apps/credentials/forms.py:28
↓ 4 callers
Class
PostForm
Form for creating and editing posts in the composer.
apps/composer/forms.py:27
↓ 4 callers
Class
QueueFullError
No open posting slot exists within the scheduling lookahead horizon.
apps/calendar/services.py:102
↓ 4 callers
Class
SavedReplyForm
apps/inbox/forms.py:61
↓ 3 callers
Class
ActivationRejected
4xx from /activate-preflight or /activate-commit, payment problem, metadata mismatch, unknown_checkout_attempt, etc.
apps/intelligence/services/exceptions.py:61
↓ 3 callers
Class
ContentCategoryForm
Form for creating/editing content categories.
apps/composer/forms.py:89
↓ 3 callers
Class
DerivedMetric
The output shape every card / chart consumes.
apps/analytics/derive.py:18
↓ 3 callers
Class
PlatformPostAnalyticsResponse
Analytics for a single per-platform child of a Post.
apps/api/schemas.py:557
↓ 3 callers
Class
PostMedia
Media attachment on a post, with ordering and alt text.
apps/composer/models.py:545
↓ 3 callers
Class
PostingSlot
Recurring time slot for a social account. Defines default publishing times (e.g., Mon/Wed/Fri at 9 AM) used for queue-based scheduling.
apps/calendar/models.py:12
↓ 3 callers
Class
StorageQuota
apps/media_library/quotas.py:34
↓ 3 callers
Class
StorageQuotaExceededError
Raised by ``enforce_storage_quota`` when an upload would push usage above the org's resolved limit. The API layer maps this to HTTP 413 with
apps/media_library/quotas.py:40
↓ 3 callers
Class
StudioCheckoutAttempt
Local mirror of Intelligence's ``StudioCheckoutAttempt``. Reserved BEFORE the Intelligence ``/studio-checkout-session`` call: - On the Studi
apps/intelligence/models.py:105
↓ 3 callers
Class
_SecureClient
apps/mcp/tests/test_rest_parity.py:31
↓ 3 callers
Class
_SecureClient
apps/api/tests/test_media_router.py:26
↓ 3 callers
Class
_SecureClient
apps/api/tests/test_analytics_router.py:165
↓ 3 callers
Class
_SecureClient
apps/api/tests/test_review_fixes_round2.py:30
↓ 2 callers
Class
AccountAnalyticsResponse
Channel-level analytics summary over a rolling window of days.
apps/api/schemas.py:486
↓ 2 callers
Class
BadRequest
4xx that isn't covered by a more specific subclass.
apps/intelligence/services/exceptions.py:45
↓ 2 callers
Class
BlueskyProvider
AT Protocol / Bluesky provider. Uses session-based authentication (app passwords), not OAuth. The ``credentials`` dict may contain: - ``
providers/bluesky.py:48
↓ 2 callers
Class
Conflict
409, idempotency / eligibility blocker.
apps/intelligence/services/exceptions.py:53
↓ 2 callers
Class
DeploymentNotAuthorized
401/403 indicating the deployment is not registered or is disabled.
apps/intelligence/services/exceptions.py:112
↓ 2 callers
Class
EncryptedJSONField
A field that stores JSON data encrypted at rest using AES-256-GCM.
apps/common/encryption.py:82
↓ 2 callers
Class
IdeaMedia
Media attachment on an idea, with stable ordering.
apps/composer/models.py:189
↓ 2 callers
Class
IntelligenceClientError
Base class, anything client-call-related.
apps/intelligence/services/exceptions.py:10
↓ 2 callers
Class
InternalNoteForm
apps/inbox/forms.py:20
↓ 2 callers
Class
RateLimitError
Platform rate limit exceeded.
providers/exceptions.py:32
↓ 2 callers
Class
ReplyForm
apps/inbox/forms.py:8
↓ 2 callers
Class
S256OnlyOAuth2Validator
OAuth2Validator subclass that requires ``code_challenge_method=S256``. Hooks ``is_pkce_required`` because it is the earliest validator method
apps/oauth_server/validator.py:20
↓ 2 callers
Class
SLAConfigForm
apps/inbox/forms.py:82
↓ 2 callers
Class
SocialAccount
apps/social_accounts/models.py:11
↓ 2 callers
Class
Tag
A reusable tag scoped to a workspace. Tags can be applied to Posts, Ideas, and other content types. They are workspace-scoped so each workspa
apps/composer/models.py:62
↓ 2 callers
Class
VirtualMembership
Duck-typed stand-in for ``apps.members.models.WorkspaceMembership``. The only attribute ``@require_permission`` reads is ``effective_permissi
apps/api/auth.py:45
↓ 2 callers
Class
_FakeOAuthRequest
Minimal oauthlib-style request for the validator unit tests. Unset attributes read as ``None`` so oauthlib's error constructor — which copies
apps/oauth_server/tests.py:115
↓ 2 callers
Class
_SecureClient
apps/api/tests/test_account_capabilities.py:27
↓ 1 callers
Class
AccountsListResponse
apps/api/schemas.py:107
↓ 1 callers
Class
ApiKeyAuth
Ninja ``HttpBearer`` that authenticates Agent API requests. The Ninja contract is: return a truthy value on success (becomes ``request.auth``
apps/api/auth.py:88
↓ 1 callers
Class
AssignForm
apps/inbox/forms.py:32
↓ 1 callers
Class
BulkActionForm
apps/inbox/forms.py:44
↓ 1 callers
Class
CreatePostRequest
Create a draft or directly schedule a post against one account. ``social_account_id`` MUST be in the key's allowlist; the auth class raises 4
apps/api/schemas.py:141
↓ 1 callers
Class
EngagementCardResponse
apps/api/schemas.py:475
↓ 1 callers
Class
InstagramLoginProvider
Instagram API provider using Instagram Login (OAuth 2.0). Authenticates Professional (Business or Creator) Instagram accounts directly throug
providers/instagram_login.py:79
↓ 1 callers
Class
InsufficientCredits
402, Intelligence returned credits=0; show upgrade CTA.
apps/intelligence/services/exceptions.py:29
↓ 1 callers
Class
IntelligenceAPIClient
Calls Intelligence's public /v1/ tool endpoints using a per-org ``bb_`` bearer key (decrypted from ``IntelligenceSubscription``).
apps/intelligence/services/client.py:443
↓ 1 callers
Class
InvalidApiKey
401, the per-org bearer key was rejected.
apps/intelligence/services/exceptions.py:25
↓ 1 callers
Class
IssuedKey
Return value of ``issue_api_key`` — the only place plaintext exists.
apps/api_keys/services.py:129
↓ 1 callers
Class
McpAuth
Bearer auth for the MCP router: bb_studio_ keys OR OAuth 2.1 tokens. A ``bb_studio_`` token reuses the parent ``ApiKeyAuth`` path verbatim —
apps/api/auth.py:330
↓ 1 callers
Class
MeResponse
Echoes everything the key is scoped to so an agent can self-introspect.
apps/api/schemas.py:90
↓ 1 callers
Class
MediaAssetListResponse
apps/api/schemas.py:424
↓ 1 callers
Class
MediaAssetManager
apps/media_library/managers.py:7
↓ 1 callers
Class
MediaAssetVersion
Version history for edited media assets. Each edit creates a new version.
apps/media_library/models.py:242
↓ 1 callers
Class
MediaFolder
Folder for organizing media assets. Max 3 levels of nesting.
apps/media_library/models.py:12
↓ 1 callers
Class
NoncedSwagger
apps/api/api.py:29
↓ 1 callers
Class
NotFound
404, typically "no pending activation" or "no account".
apps/intelligence/services/exceptions.py:49
↓ 1 callers
Class
NotificationDelivery
apps/notifications/models.py:87
↓ 1 callers
Class
OAuthMcpActor
ApiKey-shaped stand-in for an OAuth-authenticated MCP caller. Exposes exactly the ``ApiKey`` attributes the MCP path touches — the handlers'
apps/api/auth.py:226
↓ 1 callers
Class
ParsedToken
Result of splitting a raw bearer string into its three parts.
apps/api_keys/services.py:74
↓ 1 callers
Class
PostAnalyticsResponse
Analytics for a Post, with per-platform breakdown. Mirrors ``PostResponse``'s parent-Post-with-platform-children shape so agents that already
apps/api/schemas.py:594
↓ 1 callers
Class
PostMetricTileResponse
One metric tile in the per-post analytics drawer.
apps/api/schemas.py:540
↓ 1 callers
Class
PostType
providers/types.py:10
↓ 1 callers
Class
PostVersion
Immutable snapshot of a post state for version history.
apps/composer/models.py:576
↓ 1 callers
Class
ProtectedAssetError
Raised when trying to delete an asset referenced by scheduled posts.
apps/media_library/services.py:24
↓ 1 callers
Class
PublishLog
Log entry for every publish attempt (including retries). Retained for 90 days, then cleaned up by a background job.
apps/publisher/models.py:8
↓ 1 callers
Class
RateLimited
429, caller is over plan rate limit.
apps/intelligence/services/exceptions.py:33
↓ 1 callers
Class
SentimentForm
apps/inbox/forms.py:40
next →
1–100 of 668, ranked by callers