Code Monkey home page Code Monkey logo

scmt-server's Introduction

Service Cloud Migration Tool - Backend

Setup Steps

  • clone the repo git clone [email protected]:forcedotcom/scmt-server.git
  • change into the dir cd scmt-server
  • create a Heroku app heroku create
  • push to Heroku git push heroku master

License

Copyright (c) 2017, Salesforce.com, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of Salesforce.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*

scmt-server's People

Contributors

kpsf avatar minjunyang88 avatar naveennazimudeen avatar skeyelab avatar svc-scm avatar tstachl avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scmt-server's Issues

Automate a full migration

Specify which objects you would like to migrate and then migrate them in succession.

Big blocker here is how to handle failures of a parent object.

Add XSS header

Ensure that the web browser's XSS filter is enabled, by setting the X-XSS-Protection HTTP response header to '1'.

Other information

The X-XSS-Protection HTTP response header allows the web server to enable or disable the web browser's XSS protection mechanism. The following values would attempt to enable it:

X-XSS-Protection: 1; mode=block

X-XSS-Protection: 1; report=http://www.example.com/xss

The following values would disable it:

X-XSS-Protection: 0

The X-XSS-Protection HTTP response header is currently supported on Internet Explorer, Chrome and Safari (WebKit).

Note that this alert is only raised if the response body could potentially contain an XSS payload (with a text-based content type, with a non-zero length).

Ability to store and retry failed uploads

Currently we can only migrate full data sets or partial data sets. This makes it difficult to deal with failed uploads. We need a way to identify and retry these.

Update app.json to include required environmental variables

In order for the jobs to work with an unmanaged package we load the namespace for the managed package from an environmental variable during the slug compilation. The app.json file needs to have the environmental variable specified for this process to work.

Migrate Article Attachments

Desk articles can have attachments. We'll likely need to add a file field to SFDC to contain these because it doesn't exist by default.

Migrate articles in multiple languages

Both Desk KB and SFDC Knowledge allow translated articles. Currently we only migrateEenglish language articles as specified by the accept language header.

  1. Retrieve Desk enabled languages. We already have a method for this (In Desk Service, getDeskSiteLanguagesMap())
  2. Retrieve SFDC Knowledge enabled languages.
    -https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_knowledgesettings.htm
  3. Map them and determine which languages should be retrieved from Desk. Not all the languages will be able to map over because SFDC supports fewer languages.
  4. Upload articles

Account domain not migrated

Domains field doesn't correspond to default Account field (Currently it's mapped to website, but Desk allows multiple domains). We can potentially put all domains as comma separated in a custom field.

UI enhancement - migration progress

Customer asked if there was a way to see the progress on the server - maybe it can be exposed somehow? Might clash with ToS of the papertrail heroku add on we're currently using.

Heroku Button don't require all env variables

Currently all environmental variables are required when deploying from the Github project. That's fine for most of them but PACKAGE_NAMESPACE can be an empty string and should not be required.

Investigation is needed to answer some questions like is the variable going to be set if not required and value is an empty string?

image

Migrate Email Themes

Scenario: I'd like to migrate my email, notification and Auto-Acknowledgment themes from Desk

Batch fails if it is too large

If a batch is greater than 10M characters, the batch fails and the whole migration stops. Also, the job is left running and never actually closes.

We should rescue this error for at least interactions and make the batch size incrementally smaller.

Dedup process

Dedup process (i.e using external ID, email, etc.) is a nice-to-have.
-Currently, there is no de-duplication process. Accounts with the same name or contacts with the same email address will be created more than once.

Investigate migrating into an existing org

Many of our customers have Salesforce implemented already and have existing contact/account records that match up with Desk records.

  1. Determine how the tool currently handles duplicates
  2. Determine what strategies are available to mitigate duplicate creation

UI enhancement - attachment pop up

When user clicks the button to migrate attachments, there is no feedback/popup like other steps. We should look into add the the pop up so that user doesn't click twice, which will actually migrate duplicate attachments.

App.json schema issues

The content of app.json is not valid; please see app.json Schema for more information.

  • name: is too long (maximum is 30 characters)
  • description: is too long (maximum is 140 characters)

Migrate Article Inlined Images

We need to migrate inlined images and rehost them in SFDC.

  1. Scan article body for desk hosted images
  2. Upload these images to Salesforce, retrieve new url
  3. Replace the links in the article body
  4. Upload article

Shouldn't migrate deleted users

Assigned agents that are deleted shouldn't be migrated.

Don't migrate deleted users, cases with deleted users would be unassigned on the case level after migration.

writing tests for legacy

The legacy code is completely untested, in order to build confidence in the existing code base and to make sure functionality stays the same we need to create test cases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.