Managing Projects and Services

Projects are the top-level organizational unit in HolaCloud. They group together service instances and routing settings. This guide covers what is currently documented for the Console.

Creating and Switching Between Projects

To create a new project, open the project selector in the sidebar and click New Project. Provide a name and optional description. Once created, the Console switches to the new project automatically.

The project creation API is currently not covered by the Console documentation.

To switch projects, click the current project name in the sidebar and select a different one from the dropdown.

1# List all accessible projects
2curl -X GET "https://console.hola.cloud/fakeapi/projectsapi/v0/projects"
1[
2  { "id": "project-00000000-0000-0000-0000-000000000001", "name": "Hello" }
3]

Managing Service Instances per Project

Each project contains its own instances of HolaCloud services. Navigate to the service section (e.g., Databases, Functions, Files, Config, Logs, Queues, Scheduler) to manage instances within the current project.

For example, to list InceptionDB databases in the current project:

curl -X GET "https://console.hola.cloud/fakeapi/inceptionapi/v1/databases"
GET /fakeapi/inceptionapi/v1/databases HTTP/1.1
Host: console.hola.cloud
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://console.hola.cloud/fakeapi/inceptionapi/v1/databases", nil)
	if err != nil {
		panic(err)
	}

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	responseBody, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(string(responseBody))
}
<?php
$ch = curl_init();

curl_setopt_array($ch, [
    CURLOPT_URL => 'https://console.hola.cloud/fakeapi/inceptionapi/v1/databases',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
]);

$response = curl_exec($ch);
if ($response === false) {
    throw new Exception(curl_error($ch));
}
curl_close($ch);

echo $response;
import requests

response = requests.request(
    "GET",
    "https://console.hola.cloud/fakeapi/inceptionapi/v1/databases"
)

print(response.text)
const response = await fetch("https://console.hola.cloud/fakeapi/inceptionapi/v1/databases", {
  method: "GET"
});

console.log(await response.text());
const response = await fetch("https://console.hola.cloud/fakeapi/inceptionapi/v1/databases", {
  method: "GET"
});

const text = await response.text();
console.log(text);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) throws Exception {
        var request = HttpRequest.newBuilder()
            .uri(URI.create("https://console.hola.cloud/fakeapi/inceptionapi/v1/databases"))
            .method("GET", HttpRequest.BodyPublishers.noBody())
            .build();

        var response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
1[
2  { "id": "00000000-0000-0000-0000-000000000001", "name": "db1", "owners_length": 1 }
3]

The same pattern applies to Lambda functions, Files buckets, Config stores, InstantLogs streams, Queues, and Scheduler jobs.

Project API Coverage

Console project administration APIs are currently not covered by these docs. API key management is implemented by the serviceprojects API under /v0/apikeys.

Import/Export Configuration as JSON

Import/export endpoints are currently not covered by the Console documentation.

Summary

Projects in HolaCloud provide isolated environments for your applications. Through the Console you can switch projects and inspect the service data exposed by the configured APIs.

Comments

Leave a comment