officekube.io
Plans tarifaires
Aucun plan tarifaire detaille n'est encore disponible pour cet outil.
Presentation detaillee
A Fully Configured and Highly Productive Workspace.
spacer
Based on your role, select a workspace, and get it up and running in a minute. No effort to configure your tools, no worries whether your computer has enough power, a lot of workflows automated out of the box for you.
Try Now
FEATURES
Fully Configured Workspace
Whatever your work entails, it always requires a powerful enough computer with all the proper tools and applications that make up your workspace installed and configured.
Imagine instead that you could simply open a workspace in a web browser on a device of your choice that is already fully configured, has all the necessary computing power in place, and is ready for use immediately!
Each such workspace comes bundled with a number of apps. If you don't see an app you need you can always search through our app repository and install any additional apps.
FEATURES
High Degree of Workflow Automation
As you work on your projects, do you find yourself performing same old tasks over and over again?
What if your workspace had an easily searchable repository of such tasks with 100% automation? You would save time and effort and, above all, be able to execute such tasks with a higher degree of quality, as the automated task is not prone to typos, incorrectly entered information, or other types of human errors.
FEATURES
Workflow Extensibility
With our workspaces, not only can you leverage ready-to-use automated tasks - using our task development environment, you can create and automate your own tasks, and even combine them into simple or complex workflows with an equally high degree of automation.
FEATURES
Leverage the Power of the Cloud
If you are constrained by the power of your computer that is not the case with our workspaces. You can leverage our repository of tools workspaces.
Should you need a production- and enterprise-grade database, or web-server, or any other specialized tool that has to run reliably and in the most cost-effecient way you can get it up and running with just a few clicks.
FEATURES
AI-Powered Productivity
With the recent development of AI capabilities, we make sure to incorporate them into our workspaces and workflows that help further boost your productivity.
Whether you need to create good quality artifacts such as documentation, code, even an application, or troubleshoot your app, or optimize your code you do not need to step out of your workspace and use any 3rd-party service and then struggle to put a proper prompt and then to bring the result back. You can do it all seamlessly within the workspace and immediately consume the produced results.
FEATURES
Support of Team/Organization Workflows
If your tasks require collaboration with your teammates, it is time to leverage our capability to build and re-use workflows that involve activities from multiple workspaces.
FEATURES
Enterprise Grade Quality
Our platform is designed from ground up with focus on security, scalability, and resilience.
The platform leverages enterprise grade tools such as Kubernetes and is based on key principles like Zero Trust, GitOps, Data Protection in Motion and at Rest, Automatic Backup and Recovery.
---
Free
$0
SIGN UP
Availability: 40 hours/lifetime
Fully Configured
Task Repository
Task Development
App Repository
Pro
SIGN UP
Starts at $0.32/workspace/hour
Dedicated Workspaces
Fully Configured
Task Repository
Task Development
App Repository
Tools Workspaces
AI-powered Productivity
Premium Task Repo
Team
CONTACT
Availability: Unlimited
Fully Configured
Task Repository
Task Development
App Repository
Tools Workspaces
AI-powered Productivity
Premium Task Repo
Team Workflows
Multiple Environments
Pricing Details
Each premium service is charged at a separate rate and using different units of measurement. For example, usage of workspaces is measured in $ per hour and starts at $0.32/h, whereas features provided by the platform AI service are charged at $ per token ($0.0052/token). Specific rates are displayed at the time of ordering each such service.
---
Documentation
Documentation
Table Of Contents
Welcome to Office Kube Documentation!
Overview
1. Workspace
Applications
User Interface
Project Repository
Authentication
Workflow Engine
Some Workspace Mechanics
2. Workflows
3. Apps
4. Tool Workspaces
Developer Workspaces
Artifact Generation
Task Developer Guide
1. Create
2. Build
Libraries
Task Input Parameters
3. Test
Execution
Viewing Results
Debugging
Environment Variables
4. Publish
Prompt Task
Workflow.yml
1. Format
1.1. Section Info
1.2. Section Dependencies
1.3 Section Parameters
1.3.1 Authentication
1.3.2 User-Populated Parameters
3.3.3 Parameter Validation
2. Use of Template Generators
2.1. Generator Dependency
2.2. Parameter Handling
Office Kube Task Libraries
1. Template Engine
Dependencies
Generation with Mustache
Generation with Yeoman
Generation with CookieCutter
Generation with OpenAPI
2. AI Library
Applications
Why to use Apps
Welcome to Office Kube Documentation!
Overview
1. Workspace
Applications
User Interface
Project Repository
Authentication
Workflow Engine
Some Workspace Mechanics
2. Workflows
3. Apps
4. Tool Workspaces
Developer Workspaces
Artifact Generation
Task Developer Guide
1. Create
2. Build
Libraries
Task Input Parameters
3. Test
Execution
Viewing Results
Debugging
Environment Variables
4. Publish
Prompt Task
Workflow.yml
1. Format
1.1. Section Info
1.2. Section Dependencies
1.3 Section Parameters
1.3.1 Authentication
1.3.2 User-Populated Parameters
3.3.3 Parameter Validation
2. Use of Template Generators
2.1. Generator Dependency
2.2. Parameter Handling
Office Kube Task Libraries
1. Template Engine
Dependencies
Generation with Mustache
Generation with Yeoman
Generation with CookieCutter
Generation with OpenAPI
2. AI Library
Applications
Why to use Apps
Welcome to Office Kube Documentation!¶
Office Kube is a robust scalable platform that automates provisioning and configuration of workspaces based on your role.
It also allows you to greatly automate activities ranging from a simple routine such as setting up a reminder to complex workflows that require various resources be it hardware resources
such as computers and storage or properly configured software tools.
Overview¶
The Office Kube platform includes a number components that allow user activity automation. Each component is described in greater details below.
1. Workspace¶
When you create a workspace a dedicated instance of what could be thought as a virtual computer gets created in the Office Kube platform.
The instance has a number of components installed and configured on it:
Applications
User Interface
Project Repository
Authentication
Workflow Engine
Mechanics
Applications¶
Depending on your role, the workspace gets a number of applications (further refered as apps) set up.
There are apps included in every workspace. These are Terminal, File Browser, Midnight Commander, and htop (process viewer). Additional apps can be installed using the workspace toolbar (described in details below).
Every workspace includes the Robot Framework and a number of libraries for that framework. The framework and the libraries are used to automate user’s activities.
Our workspaces for developers include apps such Visual Studio Code and Swagger API Editor and additionally VS Code extensions and other tools specific to a developer’s role. For more details refer to our Developer Workspaces.
User Interface¶
For better user experience the workspace provides a toolbar which can be located at the bottom of a web-browser workspace window.
The toolbar allows to search/execute/create task (menu Tasks), switch between applications (menu Navigate to) and get access to help/feedback and user’s profile.
Project Repository¶
By design, the Office Kube platform allows you to store your project in a git repository and every workspace has a default project location /work/project. This feature is optional and does not have to be used.
Authentication¶
Currently, there is a couple of ways with which you can register as a user - using your email address or your GitHub account. We are working on enabling more types of authentication.
Workflow Engine¶
One of the core components of the workspace is a so-called workflow engine that executes automation workflows/tasks on the workspace.
The engine functionality is utilized through the toolbar’s menu item Tasks.
Some Workspace Mechanics¶
Workspace State. By default, the workspace persists your tasks, projects, and other artifacts in folder /work. These artifacts constitute a workspace state. The state can be persisted using a feature Persistent Storage available when you create a workspace. Should the workspace get crashed unexpectadly it will get automatically recovered from the persistent storage.
Idle Time. If a user leaves the workspace inactive for some time, the workspace gets automatically shut down.
Next time the user attempts to access the workspace it is automatically re-activated from the previously stored workspace state.
Workspace Power.
Our workspaces are provisioned on hardware resources to provide adequate performance. We are actively working on giving an option to a user to deploy the workspace on resource with different performance profile including options of dedicated resources and/or own hardware. Please contact us (via Help -> Feedback) if you have any specific questions and/or suggestions.
In future versions we plan to introduce special purpose so-called tool workspaces. These workspaces have a set of tools installed on them and are intended to carry out specific operations. Users will be able to plug in such workspaces into their workflows to achieve greater level of automation for their individual/team/organization activities. More to come.
2. Workflows¶
As you work on projects the chances are you often perform similar (if not same) old tasks over and over again.
Many such activities can be automated in your workspace using workflows provided by the Office Kube platform.
The platform provides a searchable repository of tasks that can be leveraged in your workstream.
Tasks can be located using menu item Tasks -> Execute in the toolbar located at the bottom of a web-browser workspace window.
A Task Management dialog will pop up and guide you through a process of searching, viewing, and executing/scheduling a task.
3. Apps¶
Workflows/tasks described earlier are used to automate user activities and are referred to as automation tasks.
The concept of workflows is leveraged to configure workspaces as well as to install and configure applications.
Whenever the workspace starts for the first time and depending on its type it can have one ore more apps bundled with the workspace.
Examples of bundled apps include Terminal, File Browser, Midnight Commander.
Additional apps can be installed from our app repository.
Each bundled app as well as the capability to install additional apps can be accessed vit the toolbar’s menu Apps.
Each app can be started/stopped from that menu using a toggle located next the app. Apps that have been installed (using the menu item Install a New App) can removed by clicking on the trash bin icon (also located next to the app).
4. Tool Workspaces¶
Often and in addition to your workspace, you might need to use other tools that have to be installed and configured as separate components.
The setup of such tools and their integration into your workflows are quite often complex and/or time consuming. Additionally, these tools usually require some ongoing maintenance.
You can greatly minimize all this effort by leveraging our tool workspaces that you can find in the same list of workspace templates available via our portal when you create a new workspace.
You can create tool workspaces and control their life cycle and use workflows from our workflow repository to leverage these workspaces in a fully automated way.
We constantly keep growing our repositories of workflows, tool workspaces, and apps and if you’d like us to add any additional tool workspaces and/or apps and/or contribute in development of workflows please drop us a note.
Developer Workspaces¶
By design our developer workspaces are built based on a technology stack. Currently available developer workspaces are java, node js (backend/react/angular), python, and golang.
It should be noted that it does not mean that once you provision a certain developer workspace you are constrained by a tech stack installed on it. You can always install any additional software.
Also, every workspace (including the developer versions) comes with pre-installed Node JS 16, JDK 11, and python 3.9 in case you need to execute any software that requires any of these runtimes.
In general, a developer workspace allows you to perform the following activities (without having to install any additional apps):
Generate, write, debug, and test code.
Write and execute different types of tests (unit, API/contract, integration).
Use tools workspaces (e.g. SonarQube, Storybook, etc) to perform tasks such as test code quality, vulnerability analysis, ui validation (for frontend developers), etc.
Package and deploy your application.
Generate/maintain documentation.
To accomplish all of the mentioned above tasks and applications can be used within the workspace (described in this guide).
Artifact Generation¶
Many activities require creation of file-based artifacts. Examples include office documents, files with source code, configuration files.
While the content of these artifacts varies going from one project to another, their structure in many cases remains very similar, if not the same.
In such cases productivity can be improved with the help of an artifact generator that uses a set of templates with a given structure and that allow for specific content.
Here are some examples where the use of the artifact generator helps boosting productivity:
Spreadsheets. In this scenario the generator is expected to produce a spreadsheet that implements a certain table-based algorithm. Examples are project ROI, expense report, project timeline, cashflow, balance sheet, loan amortization.
Code Snippet Generator. A number of software development tasks are very similar across different projects and technology stacks. Examples include loading/reading/writing configuration files in different formats, writing code connecting to the DB, implementing REST API endpoints, using logging library, adding security code for user authentication/authorization, adding code to use various protocols (e.g. oauth2), adding unit/integration tests. Additional examples can be found in projects such as JHipster.
Project Scaffolding. At the very start of an application development, the use of a generator that can create a project skeleton with many standard capabilities (e.g. security, db, API endpoints, logging, etc) can provide a significant boost.
The Office Kube platform includes a large number of tasks that help generate various artifacts. These tasks can be located using a menu item (from the toolbar) Tasks -> Execute and using a keyword generate along with other keyword specific to a problem domain or a type of generator (e.g. scaffolding).
Please try to find one (through the toolbar) that fits your purpose and if you don’t find one do not hesitate to contact us (Help -> Feedback).
Task Developer Guide¶
This section provides details around how to build, test, and publish your automation task.
The Office Kube platform leverages an open-source Robot Framework for task automation. The framework has a great user guide that can be referenced during development of your task.
The platform facilitates the entire development cycle of the task. At high level, the development entails:
Creating a task scaffolding
Building
Testing
Publishing
Each step is described in greater details below.
1. Create¶
To create a task scaffolding simply select Tasks -> Create menu item from the toolbar.
You will be prompted to populate two mandatory parameters task name and its description.
Optionally, you can also change a default value (home/me/project) for a path where a generated project scaffolding should be stored.
Proceed to the tab Execute and click Execute button to generate the scaffolding.
Once the Create workflow completes you should see files README.rst, robot.task, and workflow.yml in mentioned folder in your workspace.
Next, you open the folder in Visual Code Studio where the file README.rst should automatically get opened.
Under the hood, the workflow also creates a repository for your generated task with a default branch named main.
You can then proceed with following the readme file (using its quick start section) or open task.robot file (to start building the task) or continue reading this guide (to learn more details about task development).
2. Build¶
At high level, task development involves the following:
Identifying and using libraries.
Defining input parameters that your task may need.
Writing code.
Libraries¶
Capabilities of the Robot Framework can be extended with libraries that implement purpose specific keywords which can be used in your tasks.
Every workspace in the Office Kube platform is bundled with the following libraries:
All libraries built into the Robot Framework (Builtin, Collections, DateTime, Dialogs, OperatingSystem, Process, Remote, Screenshot, String, Telnet, XML).
Office Kube libraries: 1. Template Engine
Third-party libraries: RPA Framework, RESTinstance
The list provided above gets constantly extended. So, please check with this guide every time you need to write a task.
It should be noted that you could still install libraries not listed above in your workspace. However, if you intend your task to be used by other users the task will fail since those users’ workspaces will not have these additional libraries.
Additionally, the persisted workspace state does not include any of the additionally installed components in the workspace. So, should the workspace get restarted any such additional libraries would have to be re-installed.
If you do need a library not listed above please contact us (using the Help->Feedback menu item from the toolbar).
Task Input Parameters¶
For its proper execution your task may require some parameters. Some of these parameters might have to be populated by a user, some by the Office Kube platform.
For that the Office Kube platform uses a special file called workflow.yml. This file must reside in the same folder where your task is.
Specifics on the format of this fil and its used are described in detail in Workflow.yml
3. Test¶
A process of (unit) testing involves execution, reviewing the results, and, if needed, troubleshotting.
Execution¶
There are several ways in which you can execute your task.
Open a VS Code Terminal, switch to the directory where your task resides and execute:
robot task.robot
Open your task file in VS Code Editor and execute the task using a menu item Run located right above the line where your task is defined:
Use an Interactive Live Console to exeecute either your entire task or its lines individually:
For example, to execute the generated task (also shown below) you can open the terminal and execute:
robot README.rst
*** Settings ***
Library okgenerator.TemplateEngine
*** Variables ***
${sample_variable1} My OK Task
${sample_variable2} %{some_env_var}
*** Tasks ***
My First Office Kube Task
Log to Console \nCongratulations with successful creation of your first task ${sample_variable1}
Viewing Results¶
Execution of a task produces 3 files:
report.html - High level test report.
log.html - Detailed test execution log.
output.xml - Results in machine readable XML format.
The Office Kube automation includes the file report.html in its report.
Debugging¶
For debugging purpose and as can be seen in the screenshots above a menu item Debug from the context menu can be used to step through the task line by line.
Environment Variables¶
Sometimes a task needs to use environment variables for its proper execution (e.g. when need to use a user’s authentication token).
In this case you can, for example, create a shell script that will populate the necessary variables and then execute the task:
#!/bin/sh
export some_env_var=some_test_value
robot -V variables.yml task.robot
In the example above an environment variable some_env_var is populated with a value and the task is executed using the same robot command but with a command line argument -V that accepts a name of a file where task variables are defined in the yaml format. Below is the content of the variables.yml file for the task sample defined above:
sample_variable1: "My OK Task from the variables.yml"
4. Publish¶
When the task is created (using the Create menu item in the toolbar) a project with a repository is created in the Office Kube platform.
To make the task searchable and available for execution by all registered users you need to create a branch dev (for dev environment) or prd (for our production environment) and create a merge request to push the code into either/both of these branches.
When a user finds and selects the task in the Task Management dialog, tab Search, the content of the task’s file README.rst is rendered in the tab View of that dialog.
A recommended way to make the task ready and publish it is to::
Validate all input parameters that the task needs (workflow.yml). If there are any inputs to be populated by the user please make sure to populate proper attributes (description, usage, format) so that it makes the user’s job of populating the inputs easy.
Build and test the task (files task.robot)
Update the README.rst file. The description should clearly explain to the user what the task does and what output it produces.
Push changes to the task’s repository. The default repository branch is not. It is, however, is NOT used by the platform. To make the task available to the user the code of the ask must be pushed into the branch prd.
Prompt Task¶
A special kind of task called a prompt task can be built to leverage AI capabilities of the platform. This task should have its property type (in info section) set to prompt (not task).
All task parameters defined in section parameters are treated as prompt parameters.
The task has a mandatory component inputView.ejs - this is a template that should be written using EJS syntax.
The purpose of the template is to present the prompt to a user in a format that would allow the user to conveniently populate those parameters that the task needs in order to produce an accurate and relevant response by the platform AI capability.
Another mandatory component is prompt.mustache - this is a mustache template of the prompt and is used by the platform to put together values of the parameters and the rest of the prompt.
The prompt template should reference parameters in the form of {{{parameter_1}}}, {{{parameter_2}}}, etc. The platform uses the prompt to provide a user with an estimate for that prompt.
While the prompt task developer does NOT have to use that template it is important that the actual prompt submitted to the platform AI service is as close as possible to the one provided in prompt.mustache (to ensure the accuracy of the cost estimate).
For the prompt task there is one special parameter called ok_prompt. This parameter is populated by the platform and is passed into the task.
An overall approach implemented by the platform as far as properly creating the prompt is as follows:
Render inputView.ejs to the user. The template is rendered as part of the prompt editor user interface that is included into the task toolbar.
The user populates all prompt parameters they are expected to.
The prompt editor collects the values (entered by the user) and stores them internally.
Once the user submits the prompt it is sent to the task along with all prompt parameters made available as task variables.
In the context of this approach it is important to note that whatever parameters your task needs the user to populate, their names must be defined in workflow.yml and referenced by exact same names in both inputView.ejs and prompt.mustache templates.
Otherwise, the platform will NOT populate the prompt correctly.
Another important note to make is that the type of each prompt parameter defined in workflow.yml file and used in inputView.ejs must match.
For example, a parameter of type string (defined in workflow.yml) must be presented in inputView.ejs as a text box, a parameter of type string and with a property allowed_values set to at least 2 values must be presented as a single choice dropdown box, etc.
Refer to section parameters for complete details on parameter definition.
The AI service supports regular prompts as well as so-called prompt chains which are recommended to use when the prompt is rather large (very detailed) in which case it is better to break them into small tasks that LLMs have a better performance handling.
In the prompt chain a keyword ```PROMPT should be used on a single line to separate tasks. In this case the AI service will submit each task to the LLM separately and will use an output of previous task as an input for next one.
Here is an example of 2 task prompt chain:
```PROMPT
Describe task 1
```PROMPT
Describe task 2 that might need output from task 1
For the task to submit a prompt to the platform AI service, the task should utilize proper keywords provided by library AI Library. The following is an example on how to use a keyword Generate To Files provided by the library:
import okailibrary.PromptBasedTextGenerator
* Tasks *
Generate Code Snippet
Generate To Files ${dest_dir} ${prompt} ${workflow_id} ${dest_map_file} ${code_language}
If your task needs to produce an output that should be rendered to the user, create a file output.json in the format { label1: content1, label2: content2 } and store it in the same folder where the task is.
The workspace engine will pick up this file and return it to the workspace UI where it will be rendered in an html 2-column table (column for labels column for content) accordingly.
The following example illustrates the definition of workflow.yml, inputView.ejs, prompt.mustache, and task.robot (that generates output.json) for a prompt workflow.
workflow.yml:
info:
name: Prompt Workflow
id: com.officekube.platform.samplepromptworkflow
type: prompt
target: workspace
parameters:
- name: ok_prompt
displayed: no
description: Prompt used to generate the skeleton.
type: string
required: yes
masked: no
- name: code_language
displayed: no
type: string
allowed_values:
- value1
- value2
required: yes
masked: no
- name: single_choice_param
displayed: no
type: string
allowed_values:
- value1
- value2
required: yes
masked: no
- name: multi_choice_param
displayed: false
type: array
required: true
masked: false
allowed_values:
- val1
- val2
- name: checkbox_param
displayed: false
type: boolean
required: true
masked: false
- name: editbox_param
displayed: false
type: string
required: true
masked: false
inputView.ejs:
prompt.mustache:
Generate an app skeleton in {{{code_language}}} programming language. Testing parameters of different types: {{{multi_choice_param}}}; {{{checkbox_param}}}; {{{editbox_param}}}
task.robot:
*** Settings ***
Library OperatingSystem
Library okailibrary
Suite Teardown Terminate All Processes kill=True
*** Tasks ***
Create Output
${output_content}= Set Variable {"Generated Content":"
Generate an app skeleton in
And just some additional test parameters.
Multiple choice control
Check box
Edit Box:
Hello World!!!
"} Create File output.json content=${output_content} overwrite=${True} Workflow.yml¶ Every task must have a file workflow.yml maintained at the top level of its repository. Many workflows/tasks will have parameters and some of them might be mandatory and yet cannot have any default values meaning they must be provided to such workflow at its startup time. Use cases when workflow paramaters have to be populated: 1. When a user creates a new workspace. At this point, the user might want to schedule certain workflows to be executed at the workspace startup time. 1. When a user executes/schedules a workflow via the WSP UI toolbar. 1. Format¶ The file must be in the following format: info: name:Outils de la meme categorie


