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 module:
    • Update the APIROOT.GET service so link relations are templated whenever possible.

4.0.5

  • 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:
    • 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:
    • 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.

4.0.4

  • 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 Oauth_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 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.

4.0.3

  • 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:
    • 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.

4.0.2

  • 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 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.

4.0.1

  • 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.

4.0.0

  • Changes to the HTTP_Resource_Services module:
    • Fix GetColumnNames to properly remove XREF columns.
    • Add GetObjects service.
    • Add GetSerializedResource service.
    • Add ParseResource service.
    • Add AddLinkRelationships service.
    • Add AddProperties service.
    • Add AddEmbeddedResources service.
    • Add AddNestedProperties service.
    • Update GetDatabaseItem to use the new resource services.
    • Update GetDatabaseItems to use the new resource services.
    • Add AddFormAction service.
    • Update GetColumnValues service so when a Key ID is missing it will set Error_Services and set the response status to 404.
    • Add support for multiple nested objects in the AddNestedProperties service.
    • Update GetObjects so that specific Key ID parts can be identified to be used in the self relationship URL and also add feature so the default '*' delimiter can be swapped out for another character.
    • Fix bug AddNestedProperties when using Array formatting.
    • Add IsArray argument for the AddProperties service so data can be automatically formatted as an array regardless if @VMs are found. This is meant to maintain formatting integrity of the property regardless of 0, 1, or multiple values.
    • Add GetObject service. Refactored GetObjects service to use GetObject service.
    • Add AddProperty service. Update AddProperties service to call AddProperty for each property.
    • Add AddSubProperty and AddSubProperties service.
    • Add AddSubResource and AddSubResources service.
    • Add AddSubResourceObject and AddSubResourceObjects service.
    • Remove AddNestedProperties service. Refit other services to use AddSubResources.
    • Add AddLinkRelationship service. Update AddLinkRelationships service to call AddLinkRelationship for each relationship.
    • Update all resource related services to use new services and remove direct calls to SRP_JSON except for the lowest level services.
    • Add AllowKeyProperty argument to the GetObject, GetObjects, and GetColumnNames services to override the default behavior of removing full Key ID columns from being represented in the object. This is useful for sub-resources.
    • Fix bug in GetObject service where associated property names were not being removed if the column names were removed by the GetColumnNames service.
    • Update the GetDatabaseItem and GetDatabaseItems service so the SelfURL argument is now optional.
  • 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: Web_Accounts_Equates.
  • New table commuter: Web_Accounts_Actions.
  • New utility form: NDW_WEB_ACCOUNTS (with NDW_Web_Accounts_Events commuter).
  • New service module: WebAccounts_Services.
  • New HTTP service: HTTP_WEBACCOUNTS_SERVICES.
  • New insert: Action_Setup (taken from SRP FrameWorks).
  • New service module: Database_Services (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.

3.0.4

  • Changes to the HTTPClient_Services module:
    • Update the SendHTTPRequest service to check for content in the HeaderList variable before calling the For Each loop. (Bug Fix)
  • Changes to the HTTP_Contacts_Services web service:
    • Fix minor typo in the NextSegment variable in the GetItem method. (Bug Fix)
  • Changes to the HTTP_Resource_Services module:
    • Update the PostDatabaseItem, PutDatabaseItem, and PatchDatabaseItem services to support a new argument, AllowedColumnNames, which will be used to filter out column names which are submitted in the payload but should not be updated on the server. (Enhancement)

3.0.3

  • Changes to the HTTP_Services module:
    • Update the GetEntryPointService service to support the name of a fully qualified web service. For example, the the HTTP Framework Setup prompt for Entry Point can contain entry_point or http_entry_point_services (case-insensitive).

3.0.2

  • Service metadata added so the SRP Editor can use this without requirement all services to be recompiled first.

3.0.1

  • All services have been refactored to use Enhanced BASIC+ syntax.
  • All web services have been refactored to be easier to setup.
  • Changes to the HTTP_Services module:
  • Changes to the HTTP_MCP controller:
    • Remove logging logic and call the new CreateLogFile service instead.
    • Remove logic to handle ProcErr situations and call the new GetAbortedService.
    • Change the debugger setting mode and debugger intercept routine based on the setup values.
  • Changes to the HTTP_Entry_Point_Services web service:
    • Update to simplify the way the JSON menu is built.
    • Update to only provide access to the Contacts and Version web services.
  • Changes to the HTTP_Contacts_Services web service:
    • Update to support all CRUD operations.
    • Update to connect to the sample CONTACTS database table which is now included.
  • Changes to the HTTP_Resource_Services module:
    • Add the PutDatabaseItem service.
    • Add the PatchDatabaseItem service.
    • Update PostDatabaseItem service to only create new resources. This makes this service conform to the HTTP standards.
  • Changes to HTTP_Framework_Setup_Equates:
    • Add HTTP_FRAMEWORK_SETUP_ABORTED_SERVICE$.
    • Add HTTP_FRAMEWORK_SETUP_ENABLE_LOGGING$.
    • Add HTTP_FRAMEWORK_SETUP_DEBUGGER_SETTING$.
    • Add HTTP_FRAMEWORK_SETUP_DEBUGGER_INTERCEPT$.
    • Add HTTP_FRAMEWORK_SETUP_LOG_ERRORS_ONLY$.
  • Added the following configuration options to SRP_HTTP_FRAMEWORK_SETUP:
    • Aborted Service
    • Enable Logging Flag
    • Debugger Setting
    • Debugger Intercept
    • Log Errors Only Flag
  • Update NDW_HTTP_FRAMEWORK_SETUP to support the Aborted Service, Enable Logging Flag, Debugger Setting, Debugger Intercept, and Log Errors Only Flag values.
  • New application service module: HTTP_Aborted_Service. This is a default service to handle aborted HTTP Requests. This is similar to INET_ABORTED for traditional INET/O4W web applications.
  • New application service module: HTTP_Debugger_Service. This is a default service to handle runtime errors during HTTP Requests. This uses the RTI_DEBUG_COMMON insert to get the state of the debugger.
  • New web service: HTTP_Version_Services. This service returns the current version of the SRP HTTP Framework product. It is used by the revamped HTTP_Entry_Point_Services.
  • New sample database: As noted in the change log for HTTP_Contacts_Services above, there is now a sample CONTACTS database table included. This is a small (300 row) table with indexes that is designed to help install and test the SRP HTTP Framework very quickly.

3.0.0

  • New form: NDW_HTTP_FRAMEWORK_SETUP and an associated event commuter module. This provides a visual interface for configuring the setup values in SRP_HTTP_FRAMEWORK_SETUP.
  • Added the following configuration option to SRP_HTTP_FRAMEWORK_SETUP:
    • Non-Authenticated URLs
  • Changes to the HTTP_Services module:
  • Changes to the HTTP_Resource_Services module:
    • Refactor the GetColumnNames service and resolve a bug where non-master data type columns would be returned.

    • Update the PostDatabaseItem service to set the response status to 201 when the ItemID is being passed in but it does not yet exist in the database.

  • Changes to the HTTP_MCP controller:
    • Add support for ProcErr argument. Create a generic error response.

    • Add code to track API execution time using SRP_Stopwatch. Display the time in the Response log that is written into the debug folder.

  • Changes to the HTTP_Authentication_Services module:
    • Update the AuthenticateRequest service to verify authentication requirements of the current URL using the URLRequiresAuthentication service.

2.1.0

  • New application service module: HTTPClient_Services. Provides robust services for web services to make requests to other web servers.
  • Add the following configuration option to SRP_HTTP_FRAMEWORK_SETUP:
    • Flush Cache Flag
  • Add the following services to the HTTP_Services module:
  • Update the ClearSettings service to check the GetFlushCacheFlag service before calling the Flush and GarbageCollect statements. The purpose is to allow code web service code to always be refreshed without needing to restart the OEngineServer.
  • Add GetMVGroupNames service to HTTP_Resource_Services so that associated multivalue column groups can be applied to JSON objects.
  • Update GetDatabaseItem and GetDatabaseItems services in HTTP_Resource_Services to use the GetMVGroupNames service for any associated multivalue columns that have been defined this way.
  • Update SetHALItem and SetHALCollectionEmbedded services in HTTP_JSON_Services to support embedded objects that contain associated multivalue column information.
  • Update PostDatabaseItem service in HTTP_Resource_Services so all of the GETVALUE services specify an empty string in the Default argument. This allows empty column values to maintain a JSON null rather than convert it to an empty string.
  • Update PostDatabaseItem service in HTTP_Resource_Services to rely upon %RECORDS% (if one exists) if there is no %SK%. This is an alternative way to quickly calculate the next available Key ID for the new database row being posted.
  • Update GetDatabaseItems service in HTTP_Resource_Services to rely upon %RECORDS% (if one exists) if there is no filter specified. This is an alternative way to quickly get a sorted list of  Key IDs for the database rows being retrieved.

2.0.1

  • Fix bug in SetResponseHeaderField service that prevented header values from being saved.
  • Improve the GetFullEndPointURL service so that end points which are also the same as the API URL do not display a "/" at the end.

2.0.0

1.0.2

1.0.1

  • Create two configuration records in the SYSENV table:
  • Update the HTTP_Service_Setup insert to anticipate OECGI requests wherein the Script Name URL also exists within the Path Info URL (e.g., Microsoft IIS). This fixes a problem wherein the wrong service was being identified, especially in the Entry Point Service.
  • Update the HTTP_Service_Setup insert to assign the HomeURL$ and APIURL$ equates with the values stored in the SRP_HTTP_FRAMEWORK_SETUP record rather than being hard-coded. This eliminates the need to recompile HTTP service modules whenever the URL paths are changed.
  • Update the HTTP_Services module by adding a new service called GetVersion. This returns the information stored in the SRP_HTTP_FRAMEWORK_VERSION record.
  • Update the HTTP_MCP controller to use the capture path stored in the SRP_HTTP_FRAMEWORK_SETUP record. This eliminates the need to update the hard-coded path in HTTP_MCP and recompile.

1.0.0

  • Initial release of the stand-alone product.
  • No labels