Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

4.0.10

  • Changes to the HTTP_Services module:
    • Update the AddSubProperty, AddSubResourceObject, and AddSubResource services to escape the property name to avoid problems with properties containing dots.
    • Update the SetRequestHeaderFields service to support OECGI 4.0.2 and the new AdditionalValues value of * by checking first to see if “HTTP_” is a prefix for the name before stripping it away.
    • Fix bug in CreateLogFile service so that the HTTPAdditionalValues section properly identifies HTTP_ prefixed names before stripping the prefix out.
    • Add the GetAPIVersion service.
    • Update the UpdateWebAPIs service to better manage multiple resource IDs in the URL so that that the actual resource is properly identified. This resolves the problem when attempting to create or update the API routine it was creating a bad procedure name.
    • Add the GetCookies and GetCookie services. These are wrappers around the GetHTTPCookie service and designed to be simpler to use for application use.
  • Changes to the HTTPClient_Services module:
    • Update the SendHTTPRequest service to support PowerShell scripts.
    • Replace the UseClientXMLHTTP argument with ClientToUse to allow for more than two client options.
    • Change method of encoding the body so special characters, like apostrophes, can be supported without creating unbalanced quotes.
    • Update the SendHTTPRequest to support binary downloads.
  • Changes to the NDW_HTTP_Framework_Setup_Events commuter:
    • Update the OLE_TRE_RESOURCES.OnSelChange event handler so that Resource IDs can create subordinate Resource IDs. This support the concept of the URL having more than one consecutive segment that are Resource IDs.
  • Changes to the Webaccounts_API module:
    • Added webaccounts.HEAD API. This appeared to be missing when all HEAD APIs were added.
  • Updated the SYSENV\SRP_HTTP_FRAMEWORK_RESOURCES and SYSENV\SRP_HTTP_FRAMEWORK_RESOURCES*FRAMEWORKS configuration rows so the webaccounts resource now includes GET/HEAD methods.
  • New API Module: Binary_API.
  • Changes to the Database_Services module:
    • Merged with other versions.

4.0.9

  • Changes to the HTTP_Services module:
    • Update the SetCookie service to use Max-Age instead of MaxAge.
    • Update the SetCookie service to assume any internal datetime value being passed in is in local time. Use the ToUTC service to convert to UTC/GMT time.
    • Update the SetCookie service to always append an equal sign (=) to the cookie's name, even if the value is empty. Otherwise, the correct cookie won't get referenced if the intent is to clear the value.
    • Rename GetNonAuthenticatedURLs service to GetNonAuthenticatedPaths and update the URLRequiresAuthentication service to call the new service name.
    • Update the URLRequiresAuthentication service to support query param validations.
    • Add the IsIPWhitelisted, GetBannedIPs, and IsIPBanned services.
    • Update the IPIsPermitted service to call the IsIPWhitelisted and IsIPBanned services to determine result.
    • Add the AddBannedIP and RemoveBannedIP services.
  • Changes to the HTTP_Authentication_Services module:
    • Update the AuthenticateRequest service to return a 403 status code rather than a 511 status code if the IP making the request is not permitted.
  • Changes to the NDW_HTTP_FRAMEWORK_SETUP form:
    • Replaced OI edit table controls with SRP EditTable controls for managing Non-Authenticated Paths (formerly Non-Authenticated URLs) and Whitelisted IPs.
    • Add new SRP EditTable and info button for Banned IPs.
  • Changes to the NDW_HTTP_Framework_Setup_Events commuter:
    • Replace EDT_NON_AUTHENTICATED_URLS (an OI edit table control) with OLE_EDT_NON_AUTHENTICATED_URLS (an SRP EditTable control) in preparation of adding new features.
    • Replace EDT_WHITELISTED_IPS (an OI edit table control) with OLE_EDT_WHITELISTED_IPS (an SRP EditTable control) to remain consistent with the OLE_EDT_NON_AUTHENTICATED_URLS control.
    • Replace all references to OLE_INFO_NON_AUTHENTICATED_URLS with OLE_INFO_NON_AUTHENTICATED_PATHS, including relevant labels and help verbiage. This is to better describe the purpose of this feature.
    • Make changes where needed to support the new Query Params column in the OLE_INFO_NON_AUTHENTICATED_PATHS control.
    • Make changes where needed to support Banned IPs.
  • Changes to HTTP_Framework_Setup_Equates:
    • Added HTTP_FRAMEWORK_SETUP_NON_AUTHENTICATED_PATHS$ as a synonym for HTTP_FRAMEWORK_SETUP_NON_AUTHENTICATED_URLS$ (which is being deprecated).
    • Added HTTP_FRAMEWORK_SETUP_NON_AUTHENTICATED_QUERY_PARAMS$.
    • Added HTTP_FRAMEWORK_SETUP_BANNED_IPS$.
  • Changes to the Database_Services module:
    • Add GetTableNames service.
  • Changes to the Logging_Services module:
    • Merged with other versions.

4.0.8

  • Changes to the HTTP_Services module:
    • Update the SetResponseError service to correct a typo. It was calling the SetErrorResponse service.
    • Update the GetResponseHeaderFields service to check the HTTPScriptName value and use LF$ instead of CRLF$ as the delimiter when OECGI is not the .EXE version.
  • Changes to the NDW_HTTP_Framework_Setup_Events commuter:
    • Fix minor typo in DisplayInfoHelp gosub.
  • Changes to the APIRoot_API module:
    • Fix a minor typo in the APIROOT.GET API.

4.0.7

  • Changes to the HTTP_Services module:
    • Update the SetResponseHeaderField service so the Append flag creates multiple Set-Cookie headers rather than folding them.
    • Add SetCookie service to make it easier to build a Set-Cookie response header.
  • Changes to the HTTPClient_Services module:
    • Fix a bug in the SendHTTPRequest service so that request headers are properly parsed. All colons were erroneously being converted to @VM instead of the first colon (which separated the header name from the header value).
    • Update the SetResponseHeaderField service to better support Set-Cookie headers.Allow multiple cookie names to be stored but only store the value of the last cookie name if it is duplicated.

    • Update the GetResponseHeaderField by adding a Delimiter argument so the caller can specify an alternative delimiter for the values being returned.

    • Add GetCookies service to make it easier to view all cookies returned in the response.

    • Add GetCookie service to make it easier to see the entire cookie string of a specified cookie.

    • Update the GetCookie service to include an IgnoreAttributes argument. If this is True$, then only the cookie name and value will be returned.

4.0.6

  • Changes to various service modules and commuters so calls to Memory_Services use a private cache name. The primary reason is to avoid conflicts with caches used by the full SRP FrameWorks product:
  • Changes to the NDW_HTTP_Logs_Events commuter:
    • Replace the Utility("RUNWIN") service with ShellExecute in the OLE_RPT_LOGTABLE.OnItemHyperlink event handler since not all systems work properly with the RUNWIN service.
  • Changes to the HTTP_Resource_Services module:
    • Update the AddEmbeddedResources service so it can be called more than once for the same embedded resource name. New resources will be added rather than replace what is already present.
    • Update the AddLinkRelation and AddLinkRelations services to support IsTemplate (IsTemplates) Boolean argument. This is to add support for URI Templates:
      https://tools.ietf.org/html/rfc6570
      https://tools.ietf.org/html/draft-kelly-json-hal-08#section-5.2
    • Add GetURLTemplate service.
    • Update the AddLinkRelation service to call the GetURLTemplate service to create a URL Template out of an indicated expanded URL.
  • Changes to the HTTP_Services module:
    • Update the CreateLogFile service to fix a VNAV bug when GetStatus logs are created. Clean up the log row and the log body.
    • Update the CreateLogFile service by replacing Utility_DotNet('TIMEZONE') with the SRP_DateTime service (SRP Utilities 2.1) to avoid localization problems and potential 502 Bad Gateway errors.
    • Update the RunWebAPI service to support the HEAD method if the GET method is also supported.
  • Changes to the HTTP_MCP controller:
    • Update code that calls the CreateLogFile service for Get_Status conditions so that the status detail is better formatted. Also, clear the error condition to prevent the OECGI from making a ProcErr call.
  • Changes to the NDW_HTTP_FRAMEWORK_SETUP form:
    • Added OLE_PUB_CONTRACT control to the Resource Manager page.
  • New image: SRPHTTPTREETOPLEVELRESOURCES (BMPS\SRPHTTPTreeTopLevelResources.png)
  • Changes to the NDW_HTTP_Framework_Setup_Events commuter:
    • Update the UpdateSetupInfo internal method to get the Item key of the OLE_TRE_RESOURCES control instead of hard-coding this to APIROOT. This allows the UpdateURLPath internal method to set the URL correctly.
    • Update the WINDOW.CREATE event handler and the SetupOLEControls internal method so the OLE_TRE_RESOURCES control no longer defaults all items to be expanded but the APIROOT will be expanded upon launch. This is to help make it easier to see long lists of resources.
    • Add OLE_PUB_CONTRACT.OnClick handler to display only top-level resources.
    • Enable drag-and-drop with the OLE_TRE_RESOURCES control and add the OLE_TRE_RESOURCES.OnDrop event so users can re-sort top-level resource items.
    • Modify the OLE_TRE_RESOURCE_METHODS control to display "GET / HEAD" rather than "GET".
    • Modify the OLE_TRE_RESOURCES.OnSelChange event handler to support the change to "GET / HEAD" in the OLE_TRE_RESOURCE_METHODS control.
    • Modify the OLE_TRE_RESOURCE_METHODS.OnItemCheck event handler to support the change to "GET / HEAD" in the OLE_TRE_RESOURCE_METHODS control.
    • Update the UpdateWebAPIs service to add a HEAD API if there is a GET API.
  • Changes to the Ping_API module:
    • Update the ping.GET API by replacing Utility_DotNet('TIMEZONE') with the SRP_DateTime service (SRP Utilities 2.1) to avoid localization problems and potential 502 Bad Gateway errors.
  • Changes to the WebAccounts_Services module:
    • Update the ConvertJSONWebAccountsToMV service by replacing Utility_DotNet('TIMEZONE') with the SRP_DateTime service (SRP Utilities 2.1) to avoid localization problems and potential 502 Bad Gateway errors.
  • Changes to the Web_Accounts_Actions module:
    • Update the CURRENT_PASSWORD_CREATED and CURRENT_PASSWORD_EXPIRES calculated column logic by replacing Utility_DotNet('TIMEZONE') with the SRP_DateTime service (SRP Utilities 2.1) to avoid localization problems and potential 502 Bad Gateway errors.
  • Changes to the NDW_HTTP_FRAMEWORK_SETUP form:
    • Fixed the OLE_PUB_CONTRACT control by removing the Bottom Anchor setting.
  • Changes to the HTTP_Resource_Manager_Services module:
    • Update the SetResourceProperty and GetResourceSignature services to support the HEAD method.
  • Update the various APIs to include matching HEAD APIs for all GET APIs:
  • Changes to the APIRoot_API API module:
    • Update the APIROOT.GET service so link relations are templated whenever possible.

...

  • Changes to the HTTP_Resource_Manager_Services module:
    • Fix bug in the GetEndpointResourceKeyID service so that matching the URLEndpoint works better.
    • Fix bug in the GetResource service that prevented endpoints with a resource ID from being matched correctly to the currently stored resources endpoints.
  • New service module: Logging_Services.
  • Changes to the HTTP_Services module:
    • Update the CreateLogFile service to create/append a log index in addition to a detail log file. This will be used by the HTTP Logs utility to quickly populate several logs.
    • Fix VNAV in UpdateWebAPIs service. The APIProcedureName variable was unassigned in some conditions.
    • Update the CreateLogFile service to support the new Remote Address / Execute Time column. Fix minor bug that appended a '/' when the endpoint was the same as the API Root.
    • Update the UpdateWebAPIs service to support the creation of a local copy of a Web API that exists in an inherited application.
    • Update the URLRequiresAuthentication service to support exact matching endpoints and wildcard endpoints.
    • Update the GetResponse and SetResponseBody services to auto-detect PNG, JPG, and GIF data formats.
  • Changes to the NDW_HTTP_Logs_Events commuter commuter:
    • Retrofit to use log indexes rather than the log files themselves. This speeds up the process of populating the ReportTable.
    • Add ability to rebuild log indexes. Modify the Action Bar so the Refresh Logs are now in the new Log Actions group.
    • Update the EDL_SEARCH_TEXT.CHAR event handler to avoid refreshing the list of of logs if the user is backspacing in an empty control.
    • Revamp the search feature so that text searching no longer filters the list but locates the next row with the match. Add support for Next and Previous search requests.
    • Various changes to add support for a Remote Address / Execute Time column.
    • Add support to archive logs.
    • Update the RefreshLogTable internal gosub so the log count will report 0 instead of empty if the UDP has not yet been set.
    • Fix VNAV in the OLE_ACTION_BAR.OnClick when archiving logs and cancelling the CHOOSE folder dialog.
    • Update archive log feature to display a success or error message as needed.
    • Hide ReportTable and display Picture control with caption when archiving logs to help indicate a process is running.
    • Clear the log count indicator when the capture path is empty.
  • Changes to the NDW_HTTP_LOGS form form:
    • Resized to provide more real estate.
    • Added VCR Next and Previous buttons to support finding additional matches.
    • Disable the CHAR event handler for the search editline in favor of a LOSTFOCUS event handler to enable Next and Previous searches. This also allows all relevant log rows to be displayed (e.g., if a particular HTTP method is found for a request log then it will be easier to see the matching response log).
  • Changes to the Action_Setup insert:
    • Add TableVolumes@ and new Unused global commons in the /Tables/ common block. Remove dependency upon the Locate statement in @Tables to find the volume of the current table.
  • Changes to the HTTP_Framework_Setup_Equates insert:
    • Add ArchiveScriptKeyID$.
  • New SYSENV configuration row: SRP_HTTP_FRAMEWORK_HTTP_LOGS_ARCHIVE_SCRIPT. This contains a PowerShell script to facilitate archiving of HTTP logs.
  • New utility form: NDW_HTTP_LOGS_ARCHIVE_DATE (with NDW_HTTP_Logs_Archive_Date_Events commuter). This provides a date prompt dialog box.
  • Changes to the NDW_HTTP_FRAMEWORK_SETUP form:
    • Updated the Non-Authenticated URLs and Whitelisted IPs edit table controls to support unlimited items.
  • Changes to the NDW_HTTP_Framework_Setup_Events commuter:
    • Update UpdateSetupInfo internal method call the ReleaseAllHashTables service so changes in the resources can be retrieved immediately by other services.
    • Update the OLE_PUB_CREATE_APIS.OnClick event handler to support prompting the user to make a copy of an inherited API.
  • Changes to the Memory_Services module:
    • Update all services that support named caches so that whenever the named cache doesn't exist it will create one automatically rather than default to the primary cache.

...

  • Changes to the NDW_HTTP_FRAMEWORK_SETUP form:
    • Bottom anchor the STA_SRP_HTTP_FRAMEWORK_VERSION control.
    • Bottom and right anchor the CHB_RESOURCE_EXCLUDE_FROM_LOGGING control.
  • Replaced the misspelled Oath_API with OAuthOauth_API.
  • Updated the SYSENV\SRP_HTTP_FRAMEWORK_RESOURCES and SYSENV\SRP_HTTP_FRAMEWORK_RESOURCES*FRAMEWORKS configuration rows with the new OAuth resource name.
  • New service module: HTTP_Resource_Manager_Services. Created to better manage interaction with the defined resources (currently in SYSENV\SRP_HTTP_FRAMEWORK_RESOURCES, but now easy to relocate). A lot of code refactoring and usage of caching has also been put in place to help performance.
  • Changes to the HTTP_Services module:
    • Deprecate local IsValidEndpoint service. Update RunWebAPI service to use the IsValidEndpoint service from the HTTP_Resource_Manager_Services module.
    • Update the CreateLogFile service to use the new GetResourceProperty service to determine if logging is excluded for the current endpoint.
    • Deprecate the GetEndpointPattern service since it is no longer a dependency with any other services.
    • Deprecate the SetSupportedEndpoints service since it is no longer a dependency with any other services.
    • Update the UpdateWebAPIs service to use the GetResourceProperty service to get the supported HTTP methods and also to use the GetResourceSignature service to build the list of API signatures.
    • Update the CreateLogFile service to parse the Get_Status error better.
  • Changes to the APIRoot_API API module:
    • Retrofit APIROOT.GET service to use the HTTP_Resource_Manager_Services module.
  • New utility form: NDW_HTTP_LOGS (with NDW_HTTP_Logs_Events commuter). Created to help manage the logs created by the CreateLogFile service.
  • New utility form: NDW_HTTP_DATEPICKER (with NDW_HTTP_DatePicker_Events commuter). Created to provide datepicker capability to edit line controls via the SRP Subclass control.

...

  • Changes to the HTTP_Services module:
    • Update the SetResponseError service to use "detail" instead of "Detail".
    • Update the GetColumnValues service so Error_Services is called after the SetResponseError call. This prevents Error_Services from being cleared prematurely.
    • Update the GetColumnNames service so Error_Services is called after the SetResponseError call. This prevents Error_Services from being cleared prematurely.
    • Update the GetMVGroupNames service so Error_Services is called after the SetResponseError call. This prevents Error_Services from being cleared prematurely.
    • Remove larges blocks of code from the RunWebAPI service and convert these into new services: GetEndpointIsValidEndpointSetSupportedEndpoints, and GetEndpointPattern.
    • Update the CreateLogFile service to confirm if the endpoint resource should be excluded from being logged.
    • Update the GetHomeURL service to use the GetHTTPServerName service first and then rely upon the HTTP_FRAMEWORK_SETUP_HOME_URL$ value.
  • Changes to the Contacts_API module module:
    • Update contacts.ID.GET API by removing unnecessary call to the GetDatabaseItem service.
  • Changes to the NDW_HTTP_Framework_Setup_Events commuter:
    • Replace calls to GetLocalAppKey gosub with calls to GetLocalAppKeyID service.
    • Add support for resource endpoints to be excluded from logging.
    • Display the SRP HTTP Framework version.
    • Update the Home URL help in the DisplayInfoHelp service.
  • New API Module: Ping_API.
  • Changes to the HTTP_Authentication_Services module:
    • Update the ValidateWebAccountPassword service to reset the invalid password attempt counter for an account if a valid password is passed in.

...

  • Changes to the Database_Services module:
    • Update the CalculateColumn service so that the TableName variable is initialized to prevent potential VNAV errors.
  • Changes to the HTTP_Services module:
    • Update all GetHTTPValue services to support a DecodePercentString flag that will be used to automatically call the DecodePercentString service before returning the HTTP value.
  • Changes to the HTTP_Resource_Services module:
    • Update the AddEmbeddedResources service to support a new Singular argument. This provides support for an embedded resource that is unique and should be represented as sub-properties rather than sub-resources.
    • Update the AddSubProperty service to correctly handle the SubPropertyValue argument if it contains an object handle.
    • Rename the GetLinkRelationship service to GetLinkRelation. Rename the GetLinkRelationships service to GetLinkRelations.
  • Changes to the APIRoot_API API module:
    • Replace all references to AddLinkRelationship with AddLinkRelation.
  • Changes to the Webaccounts_API module:
    • Replace all references to AddLinkRelationships with AddLinkRelations.
  • Changes to the Contacts_API module:
    • Replace all references to AddLinkRelationships with AddLinkRelations.

...

  • Various API routines were updated to use the FullEndpointURLNoQuery variable instead of the FullEndpointURL. This way specific services won't accidentally include potential query params when construction new URLs based on the base endpoint.
  • Changes to the APIRoot_API module:
    • Only include the resetPassword form action authentication is enabled.
    • Update the APIROOT.GET API to verify the sub-resource has at least one HTTP method before listing it in the response.
  • Changes to the HTTP_Resource_Services module:
    • Update the UpdateDatabaseRow gosub to set the Content-Location header with the new URL if the database row is new. According to the specification regarding 201 responses this should be the Location header.
  • Changes to the HTTP_Services module:
    • Update the UpdateDecodePercentString service handle the left quotation marks.
    • Update the CreateLogFile service to include a UTC date/time stamp in the Response log header.

...

  • Changes to HTTP_Framework_Setup_Equates:
    • Add HTTP_FRAMEWORK_SETUP_WHITELISTED_IPS$.
    • Add HTTP_FRAMEWORK_SETUP_ENABLE_HTTP_BASIC_AUTHENTICATION$
    • Add HTTP_FRAMEWORK_SETUP_NEW_PASSWORD_TIME_TO_LIVE$
    • Add HTTP_FRAMEWORK_SETUP_OLD_PASSWORD_TIME_TO_LIVE$
    • Add HTTP_FRAMEWORK_SETUP_INVALID_PASSWORD_LIMIT$
    • Add HTTP_FRAMEWORK_SETUP_CONTAINMENT_ACTION$
  • Changes to the NDW_HTTP_FRAMEWORK_SETUP form:
    • Add controls to support Whitelisted IPs.
    • Major design overhaul:
      • Used a design layout similar to the Replication Manager, which is based on Microsoft Office Options dialog.
      • Add SRP ActiveX controls and multiple pages.
      • Move various setup controls onto different pages to suit the organizational layout.
      • Add HTTP Basic Authentication configuration controls.
      • Add Info buttons and tooltips for all fields.
  • Changes to the NDW_HTTP_Framework_Setup_Events commuter:
    • Add support for Whitelisted IPs.
    • Insert empty row if edit table controls are created empty. This allows a new item to be entered.
    • Major code changes to support the design overhaul of the form.
    • Add Server Enabled checkbox and associated logic.
    • Add TIMER event handler to dynamically update the Server Enabled checkbox.
    • Retrofit code to use Database_Services and Error_Services.
  • Changes to the HTTP_Services module:
    • Add the GetWhitelistedIPs and IPIsPermitted services.
    • Replace Xlate with ReadDataRow for all services referencing SetupTable$
    • Update GetHomeURL service to automatically prepend HTTP or HTTPS based on the request if this is not already specified in the user defined Home URL setting.
    • Update GetNonAuthenticatedURLs service to automatically prepend the API URL if this is not already specified in the user defined setting.
    • Add the GetEnableHTTPBasicAuthenticationFlag service.
    • Add the GetNewPasswordTimeToLive service.
    • Add the GetOldPasswordTimeToLive service.
    • Add the GetInvalidPasswordLimit service.
    • Add the GetContainmentAction service.
    • Add the GetServerEnabled service.
    • Add the SetServerEnabled service.
  • Changes to the HTTP_Authentication_Services module:
    • Add support for checking for whitelisted IPs in the AuthenticateRequest service.
    • Add GetWebAccountPasswordSetWebAccountPassword, and ValidateWebAccountPassword services.
    • Update the AuthenticateRequest service to use the ValidateWebAccountPassword service rather than relying upon a hardcoded USERS table.
    • Update NewPasswordTimeToLive$ equate to use the GetNewPasswordTimeToLive service rather than the hardcoded value.
    • Update OldPasswordTimeToLive$ equate to use the GetOldPasswordTimeToLive service rather than the hardcoded value.
  • New table: WEB_ACCOUNTS to provide built-in support for authentication.
  • New insert: WEBWeb_ACCOUNTSAccounts_EQUATESEquates.
  • New table commuter: Web_Accounts_Actions.
  • New utility form: NDW_WEB_ACCOUNTS_ACTIONS (with NDW_Web_Accounts_Events commuter).
  • New service module: WEBACCOUNTSWebAccounts_SERVICESServices.
  • New HTTP service: HTTP_WEBACCOUNTS_SERVICES.
  • New insert: ACTIONAction_SETUPSetup (taken from SRP FrameWorks).
  • New service module: DATABASEDatabase_SERVICESServices (taken from SRP FrameWorks).
  • Added RTI_LH_INFO_EQUATES (taken from the UD Manager).
  • Changes to HTTP_ENTRY_POINT_SERVICES:
    • Add webaccounts to the list of allowed services.
  • New SYSENV configuration row: SRP_HTTP_FRAMEWORK_SERVER_ENABLED.
  • Changes to the HTTP_MCP controller:
    • Add support for the GetServerEnabled service. Set status to 503 is server is not enabled.
  • New Images
    • SRPHTTPINFO (BMPS\SRPHTTPInfo.png)
    • SRPHTTPTREECOLLAPSED (BMPS\SRPHTTPTreeCollapsed.png)
    • SRPHTTPINFOTREEEXPANDED (BMPS\SRPHTTPTreeExpanded.png)
  • Changes to the HTTPClient_Services module:
    • Update SendHTTPRequest service to support client-side certificates.

...