Skip to content
Ricka Princy edited this page Aug 21, 2024 · 1 revision

GeoJobs Wiki

Welcome to the GeoJobs project wiki.

Table of Contents

  1. Overview
  2. Authentication and Authorization

Overview

GeoJobs is an advanced detection API designed for tasks such as identifying pools, pathways, roofs, and other objects within specific geographical zones.

Authentication and Authorization

In GeoJobs, authentication is managed through API keys. Access to different parts of the API is controlled based on user roles, which are divided into Admin and Community users.

Admin Users

Have full access to all endpoints within the GeoJobs API.

Community Users

Community users, identified by their API key, have limited access. They can only call the /fullDetection endpoint, which allows them to detect objects within their authorized zones and for the types of objects they are permitted to analyze. The detection process is subject to the maxSurface limitation, ensuring that the user cannot exceed their allocated surface area.

Community Models

The CommunityAuthorization model serves as the blueprint for defining what each community user within the GeoJobs platform can do. This model is composed of several key elements that outline the permissions and limitations for each community.

  • CommunityAuthorization: Each community within the GeoJobs platform is represented by the CommunityAuthorization entity, which includes the following attributes:

    • Id (id): A unique identifier for the community.

    • Community name (name): The name of the community, used for easy identification and management.

    • ApiKey (apiKey): A secure API key provided to the community, used for authenticating and authorizing their access to the GeoJobs API.

    • Max Surface(maxSurface): The maximum surface area (measured in square degrees) that the community is allowed to analyze.

    • Authorized Zones (authorizedZones): This is a list of CommunityAuthorizedZone entities, each representing a specific geographical area where the community is allowed to conduct detections. The zones are defined using multi-polygons that outline the permissible boundaries for detection.

    • Detectable Object Types (detectableObjectTypes): This list comprises CommunityDetectableObjectType entities, which specify the types of objects the community is authorized to detect, such as pools, pathways, or roofs. This ensures that the community operates within their permitted scope.

    • Used Surfaces (usedSurfaces): This is a historical log of CommunityUsedSurface records, each detailing the surface area utilized during a detection operation. Each record includes the amount of surface used and the corresponding timestamp, helping monitor the community’s usage against their maxSurface limit.

  • CommunityAuthorizedZone:

    • Id (id): A unique identifier for the zone.

    • Name (name): A descriptive name for the zone.

    • Mulipolygon (multiPolygon): The multi-polygon structure that outlines the geographical boundaries of the zone.

  • CommunityDetectableObjectType:

    • Id (id): A unique identifier for the object type (id).

    • Object type (type): The specific type of object that the community is allowed to detect, such as a pool, pathway, or roof.

  • CommunityUsedSurface:

    • Id (id): A unique identifier for the usage record;

    • UsedSurface (usedSurface): The amount of surface area utilized in a detection operation.

    • Usage datetime (usageDatetime): The date and time when the surface area was used, helping to maintain an accurate log of the community’s detection history.