Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
C
cloud-native
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 15
    • Issues 15
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • Development
  • cloud-native
  • Issues
  • #16

Closed
Open
Opened Jul 07, 2018 by xurizaemon@xurizaemonMaintainer

[Meta] Does CiviCRM have a single defined application HTTP entry point which routes all requests?

Various issues arise when we have multiple entry points to the application (eg scripts in extern/, direct call scripts like KCFinder integration/civicrm.php, IPN handlers).

These issues stem from duplicated / non-identical approaches to bootstrapping / path discovery / session management.

The end goal here is to eliminate alternate entry points and ensure any callback uses CiviCRM's core routing.

As much as possible auth/bootstrap/url/path resolution should be handled in one place only (each) for maintainability.

Background issues / examples:

  • CRM-17212
  • CRM-13249
  • CRM-12246
  • #6
  • #7

Targets

  • extern/authorizeIPN.php, ipn.php, pxIPN.php - IPN handlers → use civicrm/ipn/% entry point
  • extern/cxn.php
  • extern/open.php - endpoint to track mail opens via image URL
  • extern/rest.php - API endpoint → civicrm/api/v3, civicrm/api/v4 etc
  • extern/soap.php - SOAP interface, still used by CiviSMTP? → civicrm/soap
  • extern/url.php - Mailing redirect → civicrm/redirect ?
  • packages/kcfinder/integration/civicrm.php - KCFinder integration for CiviCRM - IDK

IPN handlers should be tackled as those core payment processors are moved to extensions.

Edited Aug 29, 2018 by herbdool
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: dev/cloud-native#16