SlideShare a Scribd company logo
Cutting edge web development on
the Salesforce platform
A Salesforce IT story
Andy Bean
Senior UI/UX Designer
abean@salesforce.com
Robert Birbeck
Senior Software Engineer
rbirbeck@salesforce.com
Phi Tran
Software Engineer
ptran@salesforce.com
Safe Harbor
​Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
​This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or
implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking,
including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements
regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded
services or technology developments and customer contracts or use of our services.
​The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality
for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and
rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with
completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our
ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer
deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further
information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the
most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing
important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.
​Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available
and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that
are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
What is the future of the Intranet?
Architecture
How do we obscure multi-org complexity and provide a best in class mobile and desktop experience?
identity
● Workday
● ADP
● Etrade
Canvas
Google Search Appliance
SSO
2 Factor authentication
IP whitelisting
signed
request
oauth
User Authentication - Signed Request
identity
Canvas
signed
request
User Authentication - Signed Request
Concierge Signed Request flow
Quick Simple Overview:
● User opens app in Salesforce1
● Platform makes a POST to our server
● Server decodes payload
POST
server.route( [
{
method: 'POST',
path: '/auth/signedrequest',
config: {
auth: { <--- Auth Handler
strategy: 'signedRequest',
payload: 'required'
},
handler: RouteHandlers.authRequest <--- Route Handler
}
}
} );
Org & Heroku Config
Server Route Config
payload: function ( request, reply ) {
…
canvasRequest = decorder( request.payload.signed_request, process.env.clientSecret );
…
return reply.continue( { credentials: canvasRequest } );
}
Org & Heroku Config
Server Route Config
authRequest: function ( request, reply ) {
return reply.view( config.get( 'view' ), { canvasContext: request.auth.credentials } );
},
Org & Heroku Config
Server Route Config
Setting up OAuth with Heroku
OAuth Flow using hapi
1. Request Service
2. Redirect
5. Render View
3. Redirect URI w/ authorization code
4. POST to authorize endpoint
server.route( [
{
method: ['GET', 'POST'],
path: '/auth/oauth',
config: {
auth: {
strategy: 'oAuth'
},
handler: RouteHandlers.authRequest,
}
}
} );
Org & Heroku Config
Server Route Config
server.auth.strategy( 'oAuth', 'bell', {
clientId: options.clientId,
clientSecret: options.clientSecret,
provider: {
protocol: 'oauth2',
auth: options.endpoint + '/services/oauth2/authorize',
token: options.endpoint + '/services/oauth2/token',
}
} );
Org & Heroku Config
Server Route Config
How do we make this work on the desktop? SSO + 2FA
● Setting up OAuth
● Extension
○ 2FA
○ SSO
● Light client code
Cutting Edge Mobile Development in the App Cloud
Thank you
Ad

More Related Content

What's hot (20)

Spice up Your Internal Portal with Visualforce and Twitter Bootstrap
Spice up Your Internal Portal with Visualforce and Twitter BootstrapSpice up Your Internal Portal with Visualforce and Twitter Bootstrap
Spice up Your Internal Portal with Visualforce and Twitter Bootstrap
Salesforce Developers
 
Advanced Uses of Salesforce's Login Flows
Advanced Uses of Salesforce's Login FlowsAdvanced Uses of Salesforce's Login Flows
Advanced Uses of Salesforce's Login Flows
Salesforce Developers
 
Spring '17開発者向け新機能
Spring '17開発者向け新機能Spring '17開発者向け新機能
Spring '17開発者向け新機能
Salesforce Developers Japan
 
Présentation de la platefome Heroku
Présentation de la platefome HerokuPrésentation de la platefome Heroku
Présentation de la platefome Heroku
Thierry TROUIN ☁
 
Fremont Salesforce Community Group - Salesforce Labs Day - October 2019
Fremont Salesforce Community Group - Salesforce Labs Day - October 2019Fremont Salesforce Community Group - Salesforce Labs Day - October 2019
Fremont Salesforce Community Group - Salesforce Labs Day - October 2019
Jayant Jindal
 
Build Better Communities with Lightning
Build Better Communities with LightningBuild Better Communities with Lightning
Build Better Communities with Lightning
Salesforce Developers
 
Salesforce開発入門 Webセミナー
Salesforce開発入門 WebセミナーSalesforce開発入門 Webセミナー
Salesforce開発入門 Webセミナー
Salesforce Developers Japan
 
Diving Into Heroku Private Spaces
Diving Into Heroku Private SpacesDiving Into Heroku Private Spaces
Diving Into Heroku Private Spaces
Salesforce Developers
 
Salesforce World Tour Amsterdam: Guide your users through a process using path
Salesforce World Tour Amsterdam:  Guide your users through a process using pathSalesforce World Tour Amsterdam:  Guide your users through a process using path
Salesforce World Tour Amsterdam: Guide your users through a process using path
Lieven Juwet
 
Introduction à Force.com Canvas Webinaire
Introduction à Force.com Canvas WebinaireIntroduction à Force.com Canvas Webinaire
Introduction à Force.com Canvas Webinaire
Salesforce Developers
 
Lightning Platform Product Managers: Ask Us Anything!
Lightning Platform Product Managers: Ask Us Anything!Lightning Platform Product Managers: Ask Us Anything!
Lightning Platform Product Managers: Ask Us Anything!
Salesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 
次世代のパッケージング Packaging 2(Pilot)
次世代のパッケージング Packaging 2(Pilot)次世代のパッケージング Packaging 2(Pilot)
次世代のパッケージング Packaging 2(Pilot)
Takahiro Kawabata
 
Unleash the Power of Apex Realtime Debugger
Unleash the Power of Apex Realtime DebuggerUnleash the Power of Apex Realtime Debugger
Unleash the Power of Apex Realtime Debugger
Salesforce Developers
 
Using the Google SOAP API
Using the Google SOAP APIUsing the Google SOAP API
Using the Google SOAP API
Salesforce Developers
 
Winter '18 開発者向け新機能
Winter '18 開発者向け新機能Winter '18 開発者向け新機能
Winter '18 開発者向け新機能
Salesforce Developers Japan
 
Webinar: Build Apps Customers Love as a Salesforce Developer
Webinar: Build Apps Customers Love as a Salesforce DeveloperWebinar: Build Apps Customers Love as a Salesforce Developer
Webinar: Build Apps Customers Love as a Salesforce Developer
Salesforce Developers
 
MuleSoft Anypoint Platformのコンセプトとサービス
MuleSoft Anypoint PlatformのコンセプトとサービスMuleSoft Anypoint Platformのコンセプトとサービス
MuleSoft Anypoint Platformのコンセプトとサービス
Salesforce Developers Japan
 
Heroku CIを触ってみる
Heroku CIを触ってみるHeroku CIを触ってみる
Heroku CIを触ってみる
Mitch Okamoto
 
#DF17Recap series: Make apps smarter with Einstein
#DF17Recap series: Make apps smarter with Einstein#DF17Recap series: Make apps smarter with Einstein
#DF17Recap series: Make apps smarter with Einstein
Salesforce Developers
 
Spice up Your Internal Portal with Visualforce and Twitter Bootstrap
Spice up Your Internal Portal with Visualforce and Twitter BootstrapSpice up Your Internal Portal with Visualforce and Twitter Bootstrap
Spice up Your Internal Portal with Visualforce and Twitter Bootstrap
Salesforce Developers
 
Advanced Uses of Salesforce's Login Flows
Advanced Uses of Salesforce's Login FlowsAdvanced Uses of Salesforce's Login Flows
Advanced Uses of Salesforce's Login Flows
Salesforce Developers
 
Présentation de la platefome Heroku
Présentation de la platefome HerokuPrésentation de la platefome Heroku
Présentation de la platefome Heroku
Thierry TROUIN ☁
 
Fremont Salesforce Community Group - Salesforce Labs Day - October 2019
Fremont Salesforce Community Group - Salesforce Labs Day - October 2019Fremont Salesforce Community Group - Salesforce Labs Day - October 2019
Fremont Salesforce Community Group - Salesforce Labs Day - October 2019
Jayant Jindal
 
Build Better Communities with Lightning
Build Better Communities with LightningBuild Better Communities with Lightning
Build Better Communities with Lightning
Salesforce Developers
 
Salesforce World Tour Amsterdam: Guide your users through a process using path
Salesforce World Tour Amsterdam:  Guide your users through a process using pathSalesforce World Tour Amsterdam:  Guide your users through a process using path
Salesforce World Tour Amsterdam: Guide your users through a process using path
Lieven Juwet
 
Introduction à Force.com Canvas Webinaire
Introduction à Force.com Canvas WebinaireIntroduction à Force.com Canvas Webinaire
Introduction à Force.com Canvas Webinaire
Salesforce Developers
 
Lightning Platform Product Managers: Ask Us Anything!
Lightning Platform Product Managers: Ask Us Anything!Lightning Platform Product Managers: Ask Us Anything!
Lightning Platform Product Managers: Ask Us Anything!
Salesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 
次世代のパッケージング Packaging 2(Pilot)
次世代のパッケージング Packaging 2(Pilot)次世代のパッケージング Packaging 2(Pilot)
次世代のパッケージング Packaging 2(Pilot)
Takahiro Kawabata
 
Unleash the Power of Apex Realtime Debugger
Unleash the Power of Apex Realtime DebuggerUnleash the Power of Apex Realtime Debugger
Unleash the Power of Apex Realtime Debugger
Salesforce Developers
 
Webinar: Build Apps Customers Love as a Salesforce Developer
Webinar: Build Apps Customers Love as a Salesforce DeveloperWebinar: Build Apps Customers Love as a Salesforce Developer
Webinar: Build Apps Customers Love as a Salesforce Developer
Salesforce Developers
 
MuleSoft Anypoint Platformのコンセプトとサービス
MuleSoft Anypoint PlatformのコンセプトとサービスMuleSoft Anypoint Platformのコンセプトとサービス
MuleSoft Anypoint Platformのコンセプトとサービス
Salesforce Developers Japan
 
Heroku CIを触ってみる
Heroku CIを触ってみるHeroku CIを触ってみる
Heroku CIを触ってみる
Mitch Okamoto
 
#DF17Recap series: Make apps smarter with Einstein
#DF17Recap series: Make apps smarter with Einstein#DF17Recap series: Make apps smarter with Einstein
#DF17Recap series: Make apps smarter with Einstein
Salesforce Developers
 

Similar to Cutting Edge Mobile Development in the App Cloud (20)

Just-In-Time Sharing Using Apex
Just-In-Time Sharing Using ApexJust-In-Time Sharing Using Apex
Just-In-Time Sharing Using Apex
Salesforce Developers
 
Web Apps for Salesforce with Heroku Connect
Web Apps for Salesforce with Heroku ConnectWeb Apps for Salesforce with Heroku Connect
Web Apps for Salesforce with Heroku Connect
Tom Gersic
 
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, AnywhereData Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
Salesforce Developers
 
Get Started with the Lightning Platform
Get Started with the Lightning PlatformGet Started with the Lightning Platform
Get Started with the Lightning Platform
Developer Force
 
Salesforce Tour Paris - Platform Events - Martin Lezer
Salesforce Tour Paris - Platform Events - Martin LezerSalesforce Tour Paris - Platform Events - Martin Lezer
Salesforce Tour Paris - Platform Events - Martin Lezer
Martin Lezer
 
#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform
Salesforce Developers
 
S1 and Visualforce Publisher Actions
S1 and Visualforce Publisher ActionsS1 and Visualforce Publisher Actions
S1 and Visualforce Publisher Actions
Peter Chittum
 
Partner Roadmap Webinar (July 6, 2017)
Partner Roadmap Webinar (July 6, 2017)Partner Roadmap Webinar (July 6, 2017)
Partner Roadmap Webinar (July 6, 2017)
Salesforce Partners
 
Integrating Salesforce and QuickBooks
Integrating Salesforce and QuickBooksIntegrating Salesforce and QuickBooks
Integrating Salesforce and QuickBooks
dreamforce2006
 
Dallas user group February 20 2015
Dallas user group February 20 2015Dallas user group February 20 2015
Dallas user group February 20 2015
J Mo
 
Integrating Salesforce and QuickBooks
Integrating Salesforce and QuickBooksIntegrating Salesforce and QuickBooks
Integrating Salesforce and QuickBooks
dreamforce2006
 
Einstein Analytics for Developers
Einstein Analytics for DevelopersEinstein Analytics for Developers
Einstein Analytics for Developers
Salesforce Developers
 
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTipsアドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
Salesforce Developers Japan
 
Real-time Salesforce1 Dashboards with Raspberry-pi & Heroku
Real-time Salesforce1 Dashboards with Raspberry-pi & HerokuReal-time Salesforce1 Dashboards with Raspberry-pi & Heroku
Real-time Salesforce1 Dashboards with Raspberry-pi & Heroku
Salesforce Developers
 
The Power of Salesforce APIs World Tour Edition
The Power of Salesforce APIs World Tour EditionThe Power of Salesforce APIs World Tour Edition
The Power of Salesforce APIs World Tour Edition
Peter Chittum
 
Detroit ELEVATE Track 1
Detroit ELEVATE Track 1Detroit ELEVATE Track 1
Detroit ELEVATE Track 1
Joshua Birk
 
Salesforce Lightning component framework from 0 to app
Salesforce Lightning component framework from 0 to appSalesforce Lightning component framework from 0 to app
Salesforce Lightning component framework from 0 to app
Roy Gilad
 
Using Salesforce to Manage Your Developer Community
Using Salesforce to Manage Your Developer CommunityUsing Salesforce to Manage Your Developer Community
Using Salesforce to Manage Your Developer Community
Pat Patterson
 
Building Dynamic UI with Visual Workflow Runtime API
Building Dynamic UI with Visual Workflow Runtime APIBuilding Dynamic UI with Visual Workflow Runtime API
Building Dynamic UI with Visual Workflow Runtime API
Salesforce Developers
 
Build Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DXBuild Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DX
Lynette Lim
 
Web Apps for Salesforce with Heroku Connect
Web Apps for Salesforce with Heroku ConnectWeb Apps for Salesforce with Heroku Connect
Web Apps for Salesforce with Heroku Connect
Tom Gersic
 
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, AnywhereData Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
Data Democracy: Use Lightning Connect & Heroku to Visualize any Data, Anywhere
Salesforce Developers
 
Get Started with the Lightning Platform
Get Started with the Lightning PlatformGet Started with the Lightning Platform
Get Started with the Lightning Platform
Developer Force
 
Salesforce Tour Paris - Platform Events - Martin Lezer
Salesforce Tour Paris - Platform Events - Martin LezerSalesforce Tour Paris - Platform Events - Martin Lezer
Salesforce Tour Paris - Platform Events - Martin Lezer
Martin Lezer
 
#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform
Salesforce Developers
 
S1 and Visualforce Publisher Actions
S1 and Visualforce Publisher ActionsS1 and Visualforce Publisher Actions
S1 and Visualforce Publisher Actions
Peter Chittum
 
Partner Roadmap Webinar (July 6, 2017)
Partner Roadmap Webinar (July 6, 2017)Partner Roadmap Webinar (July 6, 2017)
Partner Roadmap Webinar (July 6, 2017)
Salesforce Partners
 
Integrating Salesforce and QuickBooks
Integrating Salesforce and QuickBooksIntegrating Salesforce and QuickBooks
Integrating Salesforce and QuickBooks
dreamforce2006
 
Dallas user group February 20 2015
Dallas user group February 20 2015Dallas user group February 20 2015
Dallas user group February 20 2015
J Mo
 
Integrating Salesforce and QuickBooks
Integrating Salesforce and QuickBooksIntegrating Salesforce and QuickBooks
Integrating Salesforce and QuickBooks
dreamforce2006
 
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTipsアドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
アドバンスドLightningコンポーネント:品質の高いコンポーネント開発のためのTips
Salesforce Developers Japan
 
Real-time Salesforce1 Dashboards with Raspberry-pi & Heroku
Real-time Salesforce1 Dashboards with Raspberry-pi & HerokuReal-time Salesforce1 Dashboards with Raspberry-pi & Heroku
Real-time Salesforce1 Dashboards with Raspberry-pi & Heroku
Salesforce Developers
 
The Power of Salesforce APIs World Tour Edition
The Power of Salesforce APIs World Tour EditionThe Power of Salesforce APIs World Tour Edition
The Power of Salesforce APIs World Tour Edition
Peter Chittum
 
Detroit ELEVATE Track 1
Detroit ELEVATE Track 1Detroit ELEVATE Track 1
Detroit ELEVATE Track 1
Joshua Birk
 
Salesforce Lightning component framework from 0 to app
Salesforce Lightning component framework from 0 to appSalesforce Lightning component framework from 0 to app
Salesforce Lightning component framework from 0 to app
Roy Gilad
 
Using Salesforce to Manage Your Developer Community
Using Salesforce to Manage Your Developer CommunityUsing Salesforce to Manage Your Developer Community
Using Salesforce to Manage Your Developer Community
Pat Patterson
 
Building Dynamic UI with Visual Workflow Runtime API
Building Dynamic UI with Visual Workflow Runtime APIBuilding Dynamic UI with Visual Workflow Runtime API
Building Dynamic UI with Visual Workflow Runtime API
Salesforce Developers
 
Build Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DXBuild Together And Deliver Continuously With Salesforce DX
Build Together And Deliver Continuously With Salesforce DX
Lynette Lim
 
Ad

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Salesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
Salesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
Salesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
Salesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
Salesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
Salesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
Salesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
Salesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
Salesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
Salesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
Salesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
Salesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
Salesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
Salesforce Developers
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
Salesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Salesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
Salesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
Salesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
Salesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
Salesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
Salesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
Salesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
Salesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
Salesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
Salesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
Salesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
Salesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
Salesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 
Ad

Recently uploaded (20)

Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 

Cutting Edge Mobile Development in the App Cloud

  • 1. Cutting edge web development on the Salesforce platform A Salesforce IT story Andy Bean Senior UI/UX Designer [email protected] Robert Birbeck Senior Software Engineer [email protected] Phi Tran Software Engineer [email protected]
  • 2. Safe Harbor ​Safe harbor statement under the Private Securities Litigation Reform Act of 1995: ​This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. ​The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. ​Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 3. What is the future of the Intranet?
  • 4. Architecture How do we obscure multi-org complexity and provide a best in class mobile and desktop experience? identity ● Workday ● ADP ● Etrade Canvas Google Search Appliance SSO 2 Factor authentication IP whitelisting signed request oauth
  • 5. User Authentication - Signed Request identity Canvas signed request
  • 6. User Authentication - Signed Request Concierge Signed Request flow Quick Simple Overview: ● User opens app in Salesforce1 ● Platform makes a POST to our server ● Server decodes payload POST
  • 7. server.route( [ { method: 'POST', path: '/auth/signedrequest', config: { auth: { <--- Auth Handler strategy: 'signedRequest', payload: 'required' }, handler: RouteHandlers.authRequest <--- Route Handler } } } ); Org & Heroku Config Server Route Config
  • 8. payload: function ( request, reply ) { … canvasRequest = decorder( request.payload.signed_request, process.env.clientSecret ); … return reply.continue( { credentials: canvasRequest } ); } Org & Heroku Config Server Route Config
  • 9. authRequest: function ( request, reply ) { return reply.view( config.get( 'view' ), { canvasContext: request.auth.credentials } ); }, Org & Heroku Config Server Route Config
  • 10. Setting up OAuth with Heroku OAuth Flow using hapi 1. Request Service 2. Redirect 5. Render View 3. Redirect URI w/ authorization code 4. POST to authorize endpoint
  • 11. server.route( [ { method: ['GET', 'POST'], path: '/auth/oauth', config: { auth: { strategy: 'oAuth' }, handler: RouteHandlers.authRequest, } } } ); Org & Heroku Config Server Route Config
  • 12. server.auth.strategy( 'oAuth', 'bell', { clientId: options.clientId, clientSecret: options.clientSecret, provider: { protocol: 'oauth2', auth: options.endpoint + '/services/oauth2/authorize', token: options.endpoint + '/services/oauth2/token', } } ); Org & Heroku Config Server Route Config
  • 13. How do we make this work on the desktop? SSO + 2FA ● Setting up OAuth ● Extension ○ 2FA ○ SSO ● Light client code