Entity Management
Manage companies, users, events, partners, and speakers
Implemented
Last Updated: 2026-06-13
Overview
Entity management is the foundation of the BATbern platform. As an Organizer, you can create, read, update, and delete (CRUD) all core entities needed for successful conference planning.
Core Entities
BATbern organizes information into five core entity types:
๐ข Companies
Architectural firms participating in BATbern conferences.
Key Features:
- Swiss UID validation (CHE-xxx.xxx.xxx format)
- Company logo upload to S3
- Employee tracking
- Location and contact information
- Autocomplete search
Status: Implemented
๐ฅ Users
Individuals with platform accounts (Organizers, Speakers, Attendees, Partners, Admins).
Key Features:
- 5 roles (ORGANIZER, SPEAKER, PARTNER, ATTENDEE, ADMIN) with different permissions
- Login via email/password or โContinue with Googleโ (SSO, Epic 12)
- Additional email aliases (receive-at + send-as, Story 10-32)
- GDPR-compliant profile management
- Role promotion/demotion workflows
- Password reset and email verification
- JIT provisioning + user sync from Cognito to PostgreSQL
Status: Implemented
๐ Events
BATbern conferences and their lifecycle management.
Key Features:
- 3 event types (Full-Day, Afternoon, Evening)
- Timeline management (dates, registration windows)
- Session tracking
- Speaker assignments
- 9-state event workflow, per-speaker workflow, task system
Status: Implemented
๐ค Partners
Organizations collaborating with BATbern.
Key Features:
- Partner directory with tier badges (Diamond, Platinum, Gold, Silver, Bronze)
- Contact management
- Meeting coordination during events
- Engagement metrics
- Public-facing showcase
Status: Implemented
๐ค Speakers
Presenters for BATbern conference sessions.
Key Features:
- Speaker profile management (unified into event-management, Epic 11 / ADR-009)
- 8-state per-speaker workflow tracking
- Cognito authentication (email/password or โContinue with Googleโ) โ magic link removed
- Content collection (โค1000 characters)
- Speaker company self-service with organizer review
- Session assignments
Status: Implemented
Common Operations
All entities support standard CRUD operations:
Create ยฉ
Navigate to Entity List
Click the entity type in the left sidebar (e.g., โCompaniesโ).
Click โCreate Newโ
Click the โ+ Create New Companyโ button (top-right).
Fill Form
Complete all required fields (marked with *).
Save
Click โSaveโ or โSave & Continueโ to create the entity.
Read ยฎ
List View: Browse all entities in paginated tables
๐ข Companies (237)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[๐ Search companies... ]
Company Name | Swiss UID | Actions
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Mรผller Architekten AG | CHE-123.456 | ๐๏ธ ๐ ๐๏ธ
Detail View: View complete entity information
Click the ๐๏ธ View icon to see read-only details.
Update (U)
Click Edit
Click the ๐ Edit icon in the table row.
Modify Fields
Update any editable fields.
Save Changes
Click โSave Changesโ to persist updates.
Delete (D)
Click Delete
Click the ๐๏ธ Delete icon in the table row.
Confirm
A confirmation dialog appears:
Are you sure you want to delete โMรผller Architekten AGโ? This action cannot be undone.
Click Delete (red button) to confirm.
Search & Filter
Implemented
All entity lists support powerful search and filtering:
Simple Search:
๐ [Mรผller]
Searches across all text fields (name, email, description, etc.)
Advanced Filters (JSON syntax):
canton:ZH
employees:>100
verified:true
See entity-specific documentation for available filter fields.
Resource Expansion
Implemented
Optimize API requests by expanding related entities:
GET /api/events/123?expand=speakers,partners
Returns event with embedded speaker and partner data in a single request, reducing round trips.
Available expansions (entity-specific):
- Events:
expand=speakers,partners,sessions - Companies:
expand=employees,events - Speakers:
expand=company,sessions
Data Validation
All entities enforce validation rules:
Swiss UID Format
Implemented
Companies must provide a valid Swiss UID:
- Format:
CHE-123.456.789 - Validation: Real-time format checking
- Required: Yes for Swiss companies
Example:
- โ
Valid:
CHE-123.456.789 - โ Invalid:
CHE123456789(missing dots) - โ Invalid:
ABC-123.456.789(wrong prefix)
Email Validation
All email fields validate format:
- Format:
user@domain.tld - Required: Yes for user accounts
- Unique: Email addresses must be unique per user
File Upload Validation
Implemented
File uploads (logos, attachments) enforce limits:
- Max Size: 2MB
- Allowed Types: PNG, JPG, SVG (images); PDF (documents)
- Upload Method: Presigned S3 URLs (no backend proxying)
See File Uploads Feature for details.
Data Privacy (GDPR)
Implemented
BATbern complies with GDPR requirements:
User Rights
Users can:
- โ Access: View all personal data held by the platform
- โ Rectify: Update incorrect or incomplete data
- โ Erase: Request deletion of their account and data (โRight to be Forgottenโ)
- โ Export: Download personal data in machine-readable format (JSON)
- โ Object: Opt-out of non-essential data processing
Data Retention
- Active Users: Data retained indefinitely while account is active
- Deleted Users: Personal data erased within 30 days of deletion request
- Audit Logs: Retained for 7 years for compliance (anonymized after user deletion)
Consent Management
Planned
Future releases will include:
- Granular consent preferences
- Cookie consent management
- Marketing communication opt-in/out
Audit Logging
Planned
All entity changes are logged for accountability:
2025-03-15 14:23:45 | UPDATED | User: organizer@batbern.ch
Company "Mรผller Architekten AG"
Changed: employees (42 โ 45)
Audit logs include:
- Timestamp: When the change occurred
- Action: CREATE, UPDATE, DELETE
- User: Who made the change
- Entity: What was changed
- Changes: Field-level diff
Performance Considerations
Pagination
All list views paginate results:
- Default: 25 items per page
- Options: 10, 25, 50, 100
- Performance: Large result sets (1000+) may take longer to load
Caching
Implemented
API responses are cached for performance:
- Cache Duration: 5 minutes for read operations
- Cache Invalidation: Automatic on UPDATE/DELETE operations
- Cache Provider: Caffeine in-memory cache (local dev), ElastiCache (AWS)
Bulk Operations
Planned
Future releases will support:
- Bulk user import from CSV
- Bulk speaker invitation
- Bulk session assignment
Related Topics
- Companies Management โ - Swiss UID validation, logo upload
- Users Management โ - Roles, permissions, GDPR
- Events Management โ - Event types, timeline, workflow
- Partners Management โ - Partner directory and coordination
- Speakers Management โ - Speaker profiles and tracking
Whatโs Next?
Choose an entity type to learn more: