LT-1040

Schedule student synchronization (Expose)

Situation

Source systems (Moodle)

DataWarehouse (Vertica)

App DataStore (Oracle)

+

Solution

> curl http://laa/user-mgr/ws/users-to-good-data

Vertica to Oracle

 Oracle to GoodData

Users to GoodData

/students-from-data-warehouse

/students-to-good-data

/users-to-good-data

?

Technical Implications

[{"name" : "/ws/users-to-good-data",
  "state" : "running",
  "lastRunDate" : null
},{"name" : "/ws/students-from-data-warehouse",
  "state" : "ready",
  "lastRunDate" : "Tue Feb 17 12:28:24 EST 2015" }, ...]

/sync-jobs-status

Monitoring

Security

/user-mgr/ws/users-to-good-data

@Configuration@Order(1)
public class WebServicesSecurityConfig extends WebSecurityConfigurerAdapter {
    protected void configure(HttpSecurity http) throws Exception {
        http
            .antMatcher("/ws/**")
            .authorizeRequests()
            .anyRequest().authenticated()
            .and()
            .httpBasic();
    }}
> curl USER:PASS http://laa/user-mgr/ws/users-to-good-data

Idempotency

    public synchronized Future<Long> syncAppUsersWithGoodDataOnce() {
        if (futureOfUsersSync == null || futureOfUsersSync.isDone()) {
            futureOfUsersSync = startUsersSync();
        }
        return futureOfUsersSync;

    }

Lost Solution & Demo

Made with Slides.com