İçeriğe geç

Bu sayfa henüz sizin dilinizde yok. İngilizce metni okuyorsunuz.

Blog

Who on the team opened which account: the owner's log

Four people work in the same accounts, and you will ask who went in there not on a calm day but on the day an account goes for review. Memory and chat history do not answer that: they say who remembers what, not who did what. Your workspace history does answer it, because every row in it appears at the minute of the action itself.

ARMANOS ekibi8 min

Three questions, not one

You say «who signed in», and you are asking about three different things at once, each with a list of its own: the three tabs of the Logs section on the Members screen.

Piling them into one stream means paging through everything to find the one row. So you read the same rows through three separate lists.

  1. 1

    Actions

    Who did what across the whole workspace, newest first, with the person's email instead of an internal id.

  2. 2

    Profile sessions

    Only profile starts and stops: this is the answer to who was working when.

  3. 3

    IP log

    Sign-ins and machine registrations. A sign-in carries an address and a country; the machine name comes with the registration row.

What lands in one row

Every action you will later argue about leaves one row: who did it, in whose workspace, what exactly and when.

A small block of detail sits beside it. For a profile edit it shows what changed and to what.

An edit that changed nothing leaves no row at all. A «save» pressed without touching a field does not litter the log.

What a row holdsWhat that turns into on screen
Kinds of action in all58
Who did itThe person's email, not an internal id
Where it happenedThe workspace it happened in that day
What changed, with valuesName, scenario, fingerprint template, group, proxy
What is written as a bare factNotes, tags, login, password, one-time key

Who was in the account then

The Profile sessions tab answers that more directly than the others: only profile starts and stops remain in it.

In a row you see the person, the name the profile carried that day and the time. A profile renamed later therefore cannot confuse you after the fact.

A stop arrives as its own row, so a pair of rows shows both the start of the work and the end of it. No second row means the window is either still open or closed in an unfriendly way.

Where they signed in from

The third list gathers sign-ins and new machines, and it answers the question about somebody else's hands.

The address in the row is the real one, the address the request reached the server from. An address written into a header is set by anyone, and a theft would then be traced down a planted trail.

  1. 1

    The address

    The one the request actually arrived from, not the one that announced itself.

  2. 2

    The country

    A trusted intermediary in front of the server sets it, and nobody else does.

  3. 3

    The machine

    The name it was registered under with you, and its system when there is no name.

What a row never carries

A log with secrets inside becomes the handiest place to steal them from, so not every field carries a value.

Notes, tags, login, password and the one-time key give only the fact of an edit. A proxy goes in as an address with no login and no password.

A field the app does not have yet lands in the log as a bare fact too. The value of a new field cannot slip in by itself, even if a secret turns up inside it tomorrow.

Why two people cannot open one profile

Two live sessions of one account from two cities are exactly the picture that sends an account for review. Your machines cannot see each other, and agreeing by voice does not always work.

So a profile carries one lock for everyone: a second launch gets a refusal and sees who holds the profile now. A machine pulled out of the socket releases it by itself after three minutes.

While the window is open the app renews that lock every minute. A request that did not name its own machine will not take a busy profile.

The lock is held by time

The lock on a profile is held by the clock rather than by a promise. While the window is open the program renews it once a minute; a machine that went silent releases the profile after three minutes; a person who left the team releases everything they held that very second.

A request that does not name its machine does not get a busy profile. So every row in Profile sessions has a machine, and «who held the profile at that hour» is answered by one row.

What happenedWhat the lock does
Window openrenewed once a minute
Machine unpluggedreleased after three minutes
Person left the teamlifted at once
Request without a machine namea busy profile is not handed over

Three shapes the log flags itself

Three rules work over those same rows, and each looks for a shape that usually comes before a lost account. What they find stands in the Needs your attention block on the Members screen.

They look a month back. A person's first sign-in does not land in that block: otherwise every new arrival would scare you on the day they arrive.

The three densest clusters are named and the rest are folded into a count. Thirty identical rows and you would stop reading at the fifth.

What your rows showWhy it is about your money
A sign-in from a country this person never usedEither they travelled or the password is in other hands
4 profiles or more on one addressPlatforms take a cluster like that down whole
5 launches packed inside one minuteA platform reads that as one script behind all of them

How to answer it in five minutes

An account has gone for review, and you have one question: whose hands touched it last. The order below answers it in four steps and needs nothing but the log.

Each step narrows the circle, and by the fourth you are left with a name, a time and a machine.

  1. 1

    Find the profile in Profile sessions

    That tab gives you a pair of rows: who opened the profile, when, and when they closed it.

  2. 2

    Look at the edits of that day

    The Actions tab shows whether the proxy, the group or the fingerprint template changed on it.

  3. 3

    Check that person's sign-in

    The IP log tab names the address, the country and the machine they came from that day.

  4. 4

    Look into Needs your attention

    The three rules are already counted for you, and a sign-in from a new country stands first.

Make the log readable in advance

The log answers exactly as far as you prepared the question. Four people under one shared sign-in merge into a single nameless row.

The four preparations below are done once and pay for themselves on the first day of an argument.

  1. 1

    A seat of their own

    The person signs in with their own email, and the row then names them rather than a sign-in shared by four.

  2. 2

    Name the profile by the account

    That day's name stays in the row for good, and «Profile 7» will tell you nothing a month later.

  3. 3

    A client in their own group

    Groups narrow what a person sees, and narrow your own question to one client at the same time.

  4. 4

    One proxy per profile

    One address across four draws them into a cluster platforms take down whole.

What is left after a parting

A parting cuts access both ways at once: they stop seeing the workspace, and the workspace stops seeing their profiles. The lock they were holding is lifted by the same move.

Their rows stay with you all the same, and those are what you need right after a parting. A second invite to the same address does bring them back into the workspace.

Who on the team may read it

The owner and an admin open the workspace history. A manager and an operator are refused at that door, and it is a refusal rather than an empty screen.

Reading it leaves no trace of its own. A proxy password taken out for a launch does leave a row, and you will see that one in the Actions tab.

A program key reads the log only when it is allowed to separately. You grant a key that right the same way you grant a person a role.

A key's rights are granted from a list

A key for programs gets its rights from one list of seven lines: read and edit profiles, launch the browser, read and edit proxies, read flows and read the log. The list is one for the whole server: it is checked when a key is issued, it stands at the entrance of a call, and it is shown in the dashboard.

A right that can be granted but not applied is not on that list. A key without the log right gets the same refusal at this door as an operator.

What this does not claim

  • It is not tamper-proof storage. Rows sit in the same database as everything else, with no signature chain and no write-once medium behind them.
  • There is no filter by person or by date, neither in the app nor in the dashboard on the site. Pages run from the newest row backwards; only the dashboard has a search box, and it works over the page in front of you.
  • The log neither trims itself nor ages. Nobody prunes old rows, and you will not be offered a way to edit or delete one.
  • The three rules read your log and nothing else. What a person did inside the account itself is invisible here, and in any other browser too.

Where you can check this yourself

Every number above comes out of a file you can open and run.

Every kind of action is listed in one place, and they really do get written
apps/server/src/common/audit/audit.service.ts · apps/server/test/audit-filters.js
What a row holds and the log filters, checked with requests to a running server
apps/server/test/audit-filters.js
A secret field gets no value in the row, while a group and proxy name do
apps/server/src/profiles/profile-changes.ts · apps/server/test/было-и-стало.js
The workspace history starts at admin, and a rank-and-file member is refused
apps/server/src/logs/logs.controller.ts · apps/server/test/audit-filters.js
The three rules behind Needs your attention are executed as real arithmetic, not read as text
apps/server/src/logs/suspicion.ts · apps/server/test/подозрительная-активность.js
One profile open in one place: the refusal, the takeover and the lock time
apps/server/test/profile-lock.js · apps/desktop/test/profile-busy.js
Groups narrow what a person sees, and a profile by direct id too
apps/server/test/group-access.js
Seats by plan, the price of a seat and a person leaving the team
packages/shared/src/index.js · apps/server/test/team-money-seats.js
The log and the team are reachable from the app, not only the dashboard
apps/desktop/test/команда-и-журнал-в-окне.js

Questions

How long is the log kept?
There is no expiry. Nobody deletes old rows, and there is no scheduled clean-up either.
Will I see the password that was changed?
No. The row holds the fact of the edit, and the value goes in for neither a password, nor notes, nor a one-time key.
Can I tell a person from a script?
The id of the key does reach the record, but the owner does not see it in the row itself: the row shows the person, the action and the time.
What is left when somebody leaves?
Their rows stay with you, and those are the days you need right after a parting. The workspace itself they no longer see.
What does seating a fourth person cost?
Count from yourself: one seat always belongs to the owner. On a plan with three seats two colleagues join at no extra charge, and each one after that costs $3 a month.
A profile shows as busy and my colleague went home. What now?
Wait three minutes: an abandoned lock releases the profile by itself. Before that a takeover is deliberate, and the previous holder learns of it.

See what your own workspace shows

The team screens, the roles and the groups are laid out on the features page, together with the seats each plan gives.