Apps Registry Table - gea-ecobricks/Buwana GitHub Wiki
apps_tb — Application Registry Table
The apps_tb
table stores metadata for all applications that use the Buwana authentication system. Each app that integrates with Buwana for login, credential management, or user services must register a record in this table.
This allows the registered app to use Buwana to:
- Provide an awesome registration process for their app
- Provide a versatile non-corporate login method for their app
- Track login and signup activity per app
- Display custom branding and messaging per app
- Manage app-specific user connections via
user_app_connections_tb
- Provide app-specific terms of use, privacy policies, and emoji animation themes
🛠️ Table Overview
apps_tb
Table – Buwana Authentication System
📦 The apps_tb
table stores configuration and metadata for third-party or internal apps that use the Buwana authentication system. Each app entry defines how users from the Buwana system can register, authenticate, and interact with that app.
🔧 Table Structure
Field | Type | Description |
---|---|---|
app_id |
int(11) |
Primary key (auto-incremented). Unique identifier for the app. |
app_name |
varchar(100) |
Internal name of the app. |
app_registration_dt |
datetime |
Date and time when the app was registered with Buwana. |
client_id |
varchar(100) |
Unique public identifier for OAuth or secure identification. |
client_secret |
varchar(255) |
Private shared secret used for validating token exchanges. |
redirect_uris |
text |
JSON or comma-separated list of valid redirect URIs for OAuth callbacks. |
logout_uri |
varchar(255) |
Optional URI to redirect users after logout. |
scopes |
text |
JSON or comma-separated list of scopes requested by this app (e.g., profile , email ). |
app_domain |
varchar(255) |
Primary domain (e.g. gobrik.com ). |
app_url |
varchar(255) |
Public landing/homepage URL of the app. |
app_login_url |
varchar(255) |
URL to redirect for login. |
app_description |
text |
Short description of what this app does. |
app_logo_url |
varchar(255) |
URL to the logo shown in Buwana login screens. |
app_version |
varchar(20) |
Current version of the app (e.g., 1.0.2 ). |
app_display_name |
varchar(100) |
Display name shown to users (e.g., EarthCal ). |
app_slogan |
varchar(255) |
Short one-line marketing slogan. |
app_terms_txt |
text (utf8mb4) |
HTML-formatted Terms of Service text for modal display. |
app_privacy_txt |
text (utf8mb4) |
HTML-formatted Privacy Policy text for modal display. |
is_active |
tinyint(1) |
1 = Active (default), 0 = Disabled (blocks login access). |
allow_signup |
tinyint(1) |
Allow new users to register using this app. |
require_verification |
tinyint(1) |
1 = Require credential verification (e.g., email), 0 = Allow instant access. |
last_used_dt |
datetime |
Timestamp of the last time a user authenticated via this app. |
updated_dt |
datetime |
Last modified date (auto-updated). |
owner_buwana_id |
int(11) |
FK to users_tb indicating the creator or owner of this app. |
contact_email |
varchar(255) |
Admin or developer contact address. |
app_logo_dark_url |
varchar(255) |
Logo variant for dark backgrounds. |
app_wordmark_url |
varchar(255) |
Horizontal logo (light mode). |
app_wordmark_dark_url |
varchar(255) |
Horizontal logo (dark mode). |
signup_top_img_url |
varchar(255) |
Optional image displayed at the top of the signup form. |
signup_top_img_dark_url |
varchar(255) |
Dark mode version of the signup top image. |
app_emojis_array |
text (utf8mb4) |
JSON-encoded array of emojis to use in animations and UI during auth flow. |
💡 Usage Notes
client_id
andclient_secret
are used for OAuth flows. You may omitclient_secret
if using public clients like mobile apps.- The
app_emojis_array
enables apps to personalize login animations and UI flair using themed emojis (e.g., 🐵🐢🌍). app_terms_txt
andapp_privacy_txt
should contain HTML-formatted text to be injected directly into modals without escaping.- The
owner_buwana_id
allows Buwana admins to track and attribute apps to users or developer teams.
🧩 App Registration
Currently, we are manually entering new apps into the database (i.e. EarthCal). However, in the future, once the process is solid, we'll provide an app admin interface (using buwana login of course) for just this purpose. New apps will:
- Need to be registered in
apps_tb
(manual or admin-driven) - Include its
app_id
in the signup/login URL (e.g.signup.php?app=gbrk_123abc
) - Load app-specific terms, privacy policy, and emoji spinner content from
apps_tb
- Use the
user_app_connections_tb
table to log user connections (this will be taken care of by the provide BUwana signup flow)
🌈 Example: app_emojis_array
The app_emojis_array
column should contain a JSON-encoded array of emoji characters. These are used in the animated submit button on signup/login pages.