OutSystems Professional Developer flashcards
OutSystems Professional Developer · Build recall with a focused review session.
34 cards. Read the term and the definition here. The deck at the top of this page is optional.
- Module Layers
- OutSystems organizes modules into layers: End-User, Core, Foundation, Library. A module may reference only its own layer or the layer directly below, preventing upward dependencies.
- Strong vs Weak Reference
- A strong reference creates a compile-time dependency and propagates impact analysis. A weak reference resolves at runtime and breaks circular dependencies between modules.
- Entity vs Structure
- An Entity is a persisted database table with CRUD actions. A Structure is an in-memory composite type with no persistence, used for parameters and complex data.
- Expose Read Only
- An entity property that lets consumer modules read records but blocks Create, Update, and Delete actions from those consumers, enforcing data ownership in the producer.
- Multi-Tenant Module
- A module with 'Is Multi-Tenant' enabled. The platform automatically filters exposed entity data by the current TenantId, isolating each tenant's records.
- Service Module Purpose
- A Service Module exposes server actions, entities, and structures to other modules. It contains business logic and is typically referenced by Core or End-User modules.
- Architecture Canvas
- A Service Studio/Service Center view that visualizes module dependencies and layer placement, helping detect circular references and layer violations across the application.
- Screen Lifecycle Order
- Reactive Web screen events fire OnInitialize, then OnReady, then OnRender (possibly multiple times), then OnDestroy when the screen is left.
- Screen Aggregate
- A server-side query bound to a screen or block. It runs automatically on screen load; Max Records and Start Index control paging and result size.
- Data Action
- A server-side action callable from client-side logic. It accepts and returns only serializable types, not entity references or binary data.
- Exception Handler Element
- A flow element that catches errors by type. 'All Exceptions' catches unhandled types; LogMessage records details to the platform log.
- Commit Property
- An entity action setting that persists changes immediately rather than at the end of the request, useful when later logic depends on the saved record.
- Registered and Anonymous Roles
- Two built-in roles. 'Registered' applies to authenticated users; 'Anonymous' applies to unauthenticated visitors. Screen Roles property enforces access before render.
- Client Action vs Server Action
- Client Actions run in the browser and cannot call Server Actions directly. Server Actions run on the server and can read session and local variables.
- Aggregate Fetch
- The Fetch action runs an aggregate manually when it is not auto-executed, such as inside a Client Action or after a conditional branch.
- MABS Runtime
- Mobile Application Backend Services. The runtime that builds and serves native mobile apps, hosting the JavaScript/Reactive UI inside a native shell.
- Offline Entity
- An entity marked 'Offline' in a Mobile module. It is cached in the device SQLite database and synced incrementally when connectivity returns.
- Offline Sync Conflict
- When local and server records diverge, the default resolution is last-write-wins based on Last Modified timestamp. Custom logic can override this behavior.
- Mobile Plugin
- A compiled native extension (Cordova/Capacitor wrapper) referenced by a Mobile module. It exposes Client Actions to access device capabilities.
- MAB and MIP Packages
- Build outputs for mobile apps: MAB for Android, MIP for iOS. Generated via MABS build; required to install on a device or emulator.
- Network Status Check
- A built-in check (CheckNetworkStatus or NetworkStatus variable) that reports connectivity so logic can branch between offline and online behavior.
- Navigate Client Action
- A client-side action that routes to another screen programmatically, optionally passing input parameters and controlling transition animation.
- Reactive Virtual DOM
- Reactive Web renders via a virtual DOM and updates only bound variables that change. Direct DOM manipulation bypasses this and can cause inconsistent UI.
- Block Widget
- A reusable UI component with input parameters, events, and placeholders. It encapsulates markup and CSS for reuse across screens.
- CSS Cascade Order
- Styles cascade Theme, then Layout, then Screen, then Block. An inline Style attribute on a widget has the highest specificity and overrides all.
- Ajax Refresh
- Re-runs an aggregate and refreshes a bound widget without a full page reload. 'Refresh Data' instead re-runs all screen data sources.
- OutSystems UI Patterns
- A library of prebuilt UI patterns (Card, List, Tabs, Carousel) and utility classes. Use them before writing custom CSS for consistency.
- Client vs Local Variable
- Client Variables persist in browser storage and are shared across screens. Local Variables are scoped to a single screen or action.
- Sensitive Attribute
- An entity attribute marked 'Sensitive' is encrypted at rest. Use it for personal or confidential data that must not be stored in plaintext.
- CheckUserRole Action
- An auto-generated system action per entity that enforces CRUD permissions based on the current user's roles before allowing the operation.
- SQL Injection Defense
- OutSystems parameterizes aggregates and SQL widgets automatically. Never concatenate user input into the SQL widget property, which would bypass this protection.
- CSRF Token
- Reactive Web screens include an anti-CSRF token automatically. Custom AJAX endpoints must validate it to prevent cross-site request forgery.
- Session Timeout Setting
- Configured in Service Center. It defines how long an idle session stays valid; InvalidateSession on logout clears it immediately.
- Entity Audit
- An entity option that logs Create, Update, and Delete operations with user and timestamp. Logs are viewed in Service Center under Monitoring.