def get_signed_headers()

in modular_sdk/services/impl/maestro_signature_builder.py [0:0]


    def get_signed_headers(self, async_request: bool = False,
                           compressed: bool = False) -> dict:
        """
        Create and sign necessary headers for interaction with Maestro API
        """
        date = int(time.time() * 1000)
        signature = hmac.new(
            key=bytearray(f'{self._secret_key}{date}'.encode('utf-8')),
            msg=bytearray(
                f'M3-POST:{self._access_key}:{date}:{self._user}'.encode(
                    'utf-8')
                ),
            digestmod=hashlib.sha256
        ).hexdigest()
        n = 2
        resolved_signature = ''
        for each in [signature[i:i + n] for i in range(0, len(signature), n)]:
            resolved_signature += '1' + each
        return {
            "maestro-authentication": resolved_signature,
            "maestro-request-identifier": "api-server",
            "maestro-user-identifier": self._user,
            "maestro-date": str(date),
            "maestro-accesskey": str(self._access_key),
            "maestro-sdk-version": "3.2.80",
            "maestro-sdk-async": 'true' if async_request else 'false',
            "compressed": True if compressed else False,
        }