Skip to content

DESCRIBE MICROFLOW does not describe the entire Microflow #281

@PhetoJob

Description

@PhetoJob

I have been using mxcli to extract all the API endpoints (REST and otherwise) that a certain Mendix application is using. While doing so I realized it did not export all the endpoints that are being consumed. While investigating Claude itself suggested there could be truncation at play, but that is actually not the case.

One microflow Quota_Management.GetQuotaRequest is described including a REST CALL:

CREATE OR MODIFY MICROFLOW Quota_Management.GetQuotaRequest (
  $PlanId: String,
  $AsOnDate: DateTime,
  $CustomerId: String,
  $PlatformAccountId: String,
  $ServiceId: String,
  $Offset: Integer,
  $Limit: Integer
)
RETURNS Quota_Management.QuotaResponse
FOLDER 'AccountQuota'
BEGIN
  @position(-455, 170)
  $AccessToken = CALL MICROFLOW Public_Cloud_API.AutheticateMxIDRequest(AuthScope = Public_Cloud_API.Enum_AuthScope.es_quota_read) ON ERROR ROLLBACK;
  @position(-250, 170)
  DECLARE $FormattedDate String = if $AsOnDate != empty
then
        formatDateTime($AsOnDate, 'yyyy-MM-dd')
        +'T'
        +formatDateTime([%EndOfCurrentDay%], 'HH:mm:ss')
        +'Z'
else
        formatDateTime([%CurrentDateTime%], 'yyyy-MM-dd')
        +'T'
        +formatDateTime([%EndOfCurrentDay%], 'HH:mm:ss')
        +'Z'
;
  @position(-65, 170)
  DECLARE $QueryParams String = (if $CustomerId != empty then '&customer-id=' + urlEncode(trim($CustomerId)) else '') +
(if $PlatformAccountId != empty then '&platform-account-id=' + urlEncode(trim($PlatformAccountId)) else '') +
(if $ServiceId != empty then '&service-id=' + $ServiceId else '') +
(if $PlanId != empty then '&plan-id=' + $PlanId else '') +
(if $AsOnDate != empty then '&as-on-date=' + $FormattedDate else '') +
(if $Offset != empty then '&offset=' + $Offset else '') +
(if $Limit != empty then '&limit=' + $Limit else '')


;
  @position(130, 170)
  $EntitlementServiceBaseURL = CALL MICROFLOW LicensePortal.GetLPSettingByGroupAndName(SettingName = getCaption(Quota_Management.EntitlementService_Settings.Base_URL), SettingGroup = @Quota_Management.EntitlementServiceSettingsGroupName) ON ERROR ROLLBACK;
  @position(325, 170)
  $QuotaResponse = REST CALL GET '{1}/entitlements/quota/v1{2}' WITH ({1} = $EntitlementServiceBaseURL, {2} = replaceFirst($QueryParams,'&','?'))
    HEADER 'Authorization' = $AccessToken
    TIMEOUT 60
    RETURNS MAPPING Quota_Management.Quota AS Quota_Management.QuotaResponse ON ERROR WITHOUT ROLLBACK {
    LOG ERROR NODE toString(Quota_Management.LogNode.Entitlements) 'Failed to get Quota for Platform AccountId: {1}! Error - {2}
' WITH ({1} = $PlatformAccountId, {2} = $latestHttpResponse/ReasonPhrase);
    RETURN empty;
  };
  @position(505, 170)
  RETURN $QuotaResponse;
END;
/

Another microflow Quota_Management.CreateClaimRequest although having a Call REST action (see attached screenshot of the microflow) it is not part of the DESCRIBE output:

CREATE OR MODIFY MICROFLOW Quota_Management.CreateClaimRequest (
  $ClaimRequest: Quota_Management.ClaimCreationRequest,
  $AllowRetry: Boolean
)
RETURNS Quota_Management.ClaimCreationResponse
FOLDER 'Claim/Create'
BEGIN
  @position(-210, -50)
  $AccessToken = CALL MICROFLOW Public_Cloud_API.AutheticateMxIDRequest(AuthScope = Public_Cloud_API.Enum_AuthScope.es_claims_write) ON ERROR ROLLBACK;
  @position(15, -50)
  $EntitlementServiceBaseURL = CALL MICROFLOW LicensePortal.GetLPSettingByGroupAndName(SettingName = getCaption(Quota_Management.EntitlementService_Settings.Base_URL), SettingGroup = @Quota_Management.EntitlementServiceSettingsGroupName) ON ERROR ROLLBACK;
  @position(235, -50)
  $RetryLimit = CALL MICROFLOW LicensePortal.GetLPSettingByGroupAndName(SettingName = getCaption(Quota_Management.EntitlementService_Settings.Claims_API_retry_limit), SettingGroup = @Quota_Management.EntitlementServiceSettingsGroupName) ON ERROR ROLLBACK;
  @position(455, -50)
  $RetryDelay = CALL MICROFLOW LicensePortal.GetLPSettingByGroupAndName(SettingName = getCaption(Quota_Management.EntitlementService_Settings.Claims_API_retry_delay), SettingGroup = @Quota_Management.EntitlementServiceSettingsGroupName) ON ERROR ROLLBACK;
  @position(660, -50)
  DECLARE $RetryCount Integer = 0;
END;
/
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions