{"schemaVersion":"1","contentVersion":"2026-10-18.1","slug":"controls-activities","title":"Activity creation and deployment controls","summary":"Find reusable actions, create a Python activity, configure its inputs, and inspect builds and deployments.","category":"Control reference","minutes":13,"prerequisites":["Open the named screen in Rumata. Available controls may depend on your account, permissions, and resource state."],"sections":[{"id":"list","title":"Activity list","blocks":[{"type":"paragraph","text":"Open [System Explorer](/guides/controls-preview#navigation) → [Activities](/guides/controls-activities#list). An activity is a reusable action that a workflow can call. Create an activity by editing its code in the wizard, or ask the Rumata agent to create it for you."},{"type":"table","headers":["Control","What it does"],"rows":[["Search activities","Filter the loaded activities by name or description."],["All Statuses / Active / Disabled / Creating","Narrow the list by activity status."],["Activity row / Activity details","Open the activity’s [Overview](/guides/controls-activities#builds-source) tab."],["View source / View Code","Open the Source tab for the activity’s recorded builds."],["Manage access","Control which groups can use, build, deploy, or manage the activity."],["New Activity","Open a local creation draft. This does not create the resource until you submit [Create Activity](/guides/controls-activities#wizard)."]]}]},{"id":"wizard","title":"Creation wizard and basic information","blocks":[{"type":"paragraph","text":"The four tabs are [Basic Info](/guides/controls-activities#wizard), [Activity Code](/guides/controls-activities#wizard), [Configuration](/guides/controls-activities#configuration), and [Machine Spec](/guides/controls-activities#wizard). Review all four before creating the activity."},{"type":"table","headers":["Control","What it does"],"rows":[["Back","Leave the wizard and return to the activity list. This exits the wizard instead of moving back one step. An unsubmitted draft is not a saved activity."],["Next Step / numbered step tabs","Move through the form or return to a specific section."],["Activity Name","Enter a unique activity name using lowercase letters, numbers, dots, slashes, underscores, or hyphens, up to 30 characters."],["Description","Explain the action in up to 120 characters. Both name and description are required."],["Data Provider","Mark the activity as providing data to other activities."],["Programming Language","Show Python, the language supported by this wizard. The field is disabled."],["Create Activity","Validate the form, create the activity, and queue its build. It appears on [Machine Spec](/guides/controls-activities#wizard) and becomes Creating… while submitting."]]}]},{"id":"draft-files","title":"Activity Code: files and editing","blocks":[{"type":"paragraph","text":"The wizard starts with main.py. File operations here edit the creation draft; they do not publish a running activity."},{"type":"table","headers":["Control","What it does"],"rows":[["Explorer toggle / divider","Show or hide the file browser and resize it beside the editor."],["Files / Content search","Search by filename or search text within the available files. Select a result to open the file."],["File / folder row","Open a file or expand/collapse a directory."],["File tab / tab close icon","Switch between open files or close a tab. Closing a tab does not delete its file."],["Code text editor","Edit the selected file in the draft. A modified indicator marks changed contents."],["Plus / New File / New File Here","Open file creation. Choose Directory, Name, and Type, then Create. A missing extension is added from Type, and duplicate paths are rejected."],["Folder-plus / New Directory / New Directory Here","Open directory creation. Choose its parent and name, then Create. Cancel or Close leaves the draft unchanged."],["Rename in the file context menu","Open the filename field. In this activity-file browser, Enter or leaving the field closes it without applying the rename; Escape cancels. Use the full [Code](/guides/controls-code#save-push) editor to rename an existing workspace file."],["Delete file / Delete directory in the context menu","Remove that item from the creation draft. Check its contents before using this action."]]}]},{"id":"configuration","title":"Entry point and arguments","blocks":[{"type":"paragraph","text":"The entry point tells Rumata which function to call. Arguments are named settings supplied to that function."},{"type":"table","headers":["Control","What it does"],"rows":[["Entry File","Choose the file containing the function to run."],["Entry Function","Enter the function’s name, initially main."],["Package Manager","Select pip, the supported dependency manager in this wizard."],["Edit entry function arguments","Open the detected function signature and its configurable parameters."],["Highlighted argument / argument button","Open the settings for that parameter."],["Type: String / Number / Boolean / Object / Array","Describe whether the setting is text, a number, yes/no, a structured record, or a list."],["Argument Description","Explain what a workflow author should provide."],["Default Value","Set the value to use when a value is not explicitly supplied."],["Optional","Mark whether the caller may omit this setting."],["Options (comma separated)","For a string setting, list the choices presented to the caller."],["Done / Close in argument settings","Return from the argument editor. Changes already update the local creation draft; Done is not deployment."]]}]},{"id":"machine-spec","title":"Machine Spec","blocks":[{"type":"paragraph","text":"This specification controls resources requested by the activity when it runs. It is separate from your factory [development machine](/guides/development#machine)’s size."},{"type":"table","headers":["Control","What it does"],"rows":[["Memory slider","Choose 128–1,024 MB in the current form. The displayed initial value is 512 MB."],["CPU slider","Choose 0.1–1 CPU core in increments of 0.1. The initial value is 0.4 cores."],["Activity Summary","Review the name, description, entry point, package manager, and configuration fields before [Create Activity](/guides/controls-activities#wizard)."]]}]},{"id":"builds-source","title":"Activity details: builds and source","blocks":[{"type":"paragraph","text":"Open an existing activity to inspect the versions Rumata built and the source used by those builds."},{"type":"table","headers":["Control","What it does"],"rows":[["Overview / Builds / Deployments / Source","Switch between metadata, build records, running versions, and source files."],["Source on a build","Open files for that specific build. Disabled when its repository, activity path, or commit/ref information is missing."],["Choose a build in Source","Select the recorded revision to inspect."],["Repository link","Open the source repository in a new tab."],["Source file explorer / search / tabs","Browse files for the chosen build. This view is read-only; editing and file-creation controls are hidden."],["Close activity details","Return to the activity list."]]}]},{"id":"deployment","title":"Deploy and stop an activity","blocks":[{"type":"paragraph","text":"A build packages code. A deployment makes that build available for workflow calls. The deployment state is shown separately from build success."},{"type":"table","headers":["Control","What it does"],"rows":[["Deploy on a build","Open deployment settings. Unavailable while the build is in progress or failed, while another request is submitting, or until an active deployment has stopped."],["Disabled Deploy explanation","Hover over or focus the area around the disabled action to learn why the build cannot be deployed."],["Idle before sleeping","Choose an allowed auto-sleep duration. The default and plan maximum are marked. The first request after sleep waits for the activity to wake."],["Deploy activity","Start an on-demand deployment with that idle duration. Cancel closes the form without deploying."],["Stop on a deployment","Open a confirmation in the Deployments tab."],["Stop deployment in confirmation","Stop accepting new workflow requests. You can deploy a successful build again after it stops."],["Cancel stop","Keep the current deployment."]]}]}],"technical":[],"related":["system-explorer-activities","controls-access","development"],"sources":["components/window/explorer/workflows-activities/ActivitiesTab.tsx","components/window/explorer/workflows-activities/activities/StepperActivityCreator.tsx","components/window/explorer/workflows-activities/activities/ConfigurationStep.tsx","components/window/explorer/workflows-activities/activities/dialogs/EditArgumentsDialog.tsx","components/window/explorer/workflows-activities/activity-details/ActivityDetailsDialog.tsx","components/window/explorer/workflows-activities/activity-details/ActivityDeploymentDialog.tsx"],"updated":"2026-09-06","audience":"general","media":[{"src":"https://docs.rumata.dev/media/manual/activities.jpg","width":1662,"height":789,"alt":"Sabai Talk Thai Activities list with login, registration, SQL, and file-storage operations.","caption":"Reference capture from the separate Sabai Talk Thai application (September 8, 2026). These reusable operations support the application’s backend. Open [Details](/guides/controls-activities#builds-source) to inspect an operation before using it.","sectionId":"list"},{"src":"https://docs.rumata.dev/media/manual/activity-details.jpg","width":1662,"height":789,"alt":"Activity details dialog describing a login operation and its configuration fields.","caption":"Reference capture from the separate Sabai Talk Thai application (September 8, 2026). The details describe what the operation expects. Field definitions are different from actual secret values or customer data.","sectionId":"configuration"}],"video":null,"url":"https://docs.rumata.dev/guides/controls-activities"}